home *** CD-ROM | disk | FTP | other *** search
/ Workbench Design / WB Collection.iso / workbench werkzeuge / programmmanager / qbox-v1.14e / qbox.guide (.txt) < prev    next >
Amigaguide Document  |  1996-04-07  |  109KB  |  1,968 lines

  1. @database QBox.guide
  2. @rem $Date: 95/11/27 23:50:39 $ $Revision: 1.14-2 $
  3. @wordwrap
  4. @INDEX index
  5. @node MAIN "QBox copyright 1995 T.L.Bullock"
  6.                                                                Legal texts>
  7.                                    @{u}@{b}QBox@{ub}@{uu}
  8. @{fg shine}
  9.                     Copyright 1995 Tony 'hAVoC' Bullock.
  10.                             All Rights Reserved.
  11.                           Not for Commercial use.
  12. @{fg text}
  13.                    - Versions v1.14, v1.14
  14.  and v1.14e -
  15.      @{" Legal         " link Legal}       Conditions of use, Copyright & Disclaimer
  16.      @{" Registration  " link Register}       Please read if you have not registered yet
  17.      @{" Introduction  " link Introduction}       Foreword and tips on PD list processing
  18.      @{" Installation  " link Install}       Initial installation
  19.      @{" Usage         " link Usage}       How to configure and use QBox
  20.      @{" Contact       " link Contact}       How to contact the author
  21.      @{" Credits       " link Credits}       Who, what etc was involved
  22.      @{" History       " link History}       QBox change-log
  23.      @{" Future        " link Future}       Features that might be added some day
  24.      @{" Restrictions  " link Restrictions}       Know its limitations
  25.      @{" Known Bugs    " link Bugs}       Things to swot someday
  26.      @{" Index         " link Index}       Index to this guide
  27. @endnode
  28. @node Legal "QBox: Legal texts"
  29. <Contents                                                         Register>
  30.                           @{u}@{b}COPYRIGHT NOTICE@{uu}@{ub}
  31.    QBox is a  copyrighted  product that is available to you  through the
  32.    SHAREWARE concept. The full version (vX.XX/vX.XX
  33.  and as indicated in
  34.    the @{"About" link UseAbout} window) is NOT public domain (or derivative there of) and
  35.    as such any unauthorised copying, hiring, lending, public performance
  36.    and broadcasting of this product in its  REGISTERED  form is strictly
  37.    prohibited.
  38.    However, the EVALUATION version (vX.XXe and as indicated in  the About
  39.    window)  may  be  freely  distributed  as  freeware  (note:  copyright
  40.    remains with the author).
  41.    This product may only be used under the following terms of license.
  42.                           @{u}@{b}TERMS OF LICENSE@{ub}@{uu}
  43.    All references  to  "QBox","product", "package", "programs", "software"
  44.    and "documentation" refer to the set of files contained within the QBox
  45.    archive including  any documentation,  examples  or  other files in the
  46.    original  distribution  as  produced  and   published  by  the  author,
  47.    T.L.Bullock. This license is for the Commodore Amiga version only.
  48.    Any references involving  "written permission"  refer to  documentation
  49.    outside  of this  product's  distribution.  Any such  documents will be
  50.    supplied from the author, by the author via "snail" mail, if the author
  51.    agrees  to  any  proposals   made  by   parties  concerning   the  use,
  52.    distribution, transfer, copying, sublicensing  and/or  modifications to
  53.    the product.
  54.    The following  terms of licence refer to  two  different versions:  the
  55.    evaluation  version  and  the  registered  shareware  version.   Unless
  56.    otherwise stated  conditions refer to  both versions.  Versions  may be
  57.    identified  by  the  @{"About" link UseABout} window  of  QBox  (clearly  stating  either
  58.    EVALUATION or REGISTERED SHAREWARE therein).  Version numbers generally
  59.    indicate  which  form  of   distribution  you  have:  vX.XX/vX.XX
  60.   for
  61.    registered versions, vX.XXe for evaluation versions, so,  v1.12e is the
  62.    evaluation  version of the  registered  versions  v1.12/v1.12
  63. .  Always
  64.    check the About window to be sure.
  65. @{u}@{b}1a. EVALUATION distribution (indicated by vX.XXe):-@{ub}@{uu}
  66.    The DEMO version  may only  be distributed in it's original  unmodified
  67.    form; this archive containing the following unaltered files:-
  68.      QBox-vX.XXe          : QBox executeable  (where  vX.XXe is the current
  69.                             version number e.g. v1.14e)
  70.      QBox.guide           : This document
  71.      Install              : Installer script
  72.      QBox.readme          : Notice
  73.      S/ReadMe             : Brief note concerning examples
  74.      S/Startup.QBox       : Example button script
  75.      S/StartMenu.QBox     : Example menu script
  76.      S/QBox/EgButton.QBox : Another example button script
  77.      S/QBox/EgMenu .QBox  : Another example menu script
  78.      Libs/Explode.library : Explodes executeable
  79.      Fonts/Basic          : Large font
  80.      Fonts/Basic/32
  81.      Fonts/Basic.font
  82.      Fonts/smallfont      : Small fallback font
  83.      Fonts/smallfont/6
  84.      Fonts/smallfont.info
  85.      Fonts/Thinpaz        : Normal font (10 isnt used)
  86.      Fonts/Thinpaz/8
  87.      Fonts/Thinpaz/10
  88.      Fonts/Thinpaz.font
  89.      [All root files above have icons copyright T.L.Bullock]
  90.   -If  your  EVALUATION  distribution  varies from  the  above then  it is
  91.    invalid and you should seek out a  better supplier (email users may ask
  92.    for a free EVALUATION distribution direct from the  author although the
  93.    author does not in anyway guarentee reply).
  94.   -You may  NOT  distribute  QBox  (EVALUATION)  without the  accompanying
  95.    unaltered documentation. This documentation MUST contain the copyright
  96.    notice, terms of license and the disclaimer.
  97.   -You may  charge  a fee to  recover distribution  costs.  This fee  for
  98.    diskette distribution may  not exceed the cost  of obtaining a  public
  99.    domain diskette from the Fred Fish collection.  In any case this value
  100.    may not exceed 2 sterling (British).
  101. @{u}@{b}1b. Full REGISTERED SHAREWARE versions (indicated by vX.XX/vX.XX
  102. ):-@{ub}@{uu}
  103.   -You may  NOT  copy,  modify,  distribute,  sublicense  or  transfer the
  104.    REGISTERED version  of  this  product  without  the  witnessed  written 
  105.    permission of  the author.  Any  attempt to do  so will  be seen  as an
  106.    infringement of copyright and may lead to prosecution.
  107.   -No person(s) or  business(es) other than the author  are authorised to
  108.    accept any  registration fees or distribution fees in any form for the
  109.    SHAREWARE  versions  of  QBox.   Commercial  licenses  concerning  the
  110.    distribution of the SHAREWARE versions are subject to negotiation with
  111.    the author (see @{"Contact" link Contact} for address}. The archive should contain:-
  112.      QBox-vX.XX           : QBox executeable  (where  vX.XX is the current
  113.                            version number e.g. v1.14)
  114.      QBox-vX.XX
  115.           : Micro (mini) version
  116.      QBox.guide           : This document
  117.      QBoxQRef.gif         : Gif image for identifying button functions
  118.      Install              : Installer script
  119.      QBox.readme          : Addendum and notice
  120.      S/ReadMe             : Brief note concerning examples
  121.      S/Startup.QBox       : Example button script
  122.      S/StartMenu.QBox     : Example menu script
  123.      S/QBox/EgButton.QBox : Another example button script
  124.      S/QBox/EgMenu .QBox  : Another example menu script
  125.      Libs/Explode.library : Explodes executeable
  126.      Fonts/Basic          : Large font
  127.      Fonts/Basic/32
  128.      Fonts/Basic.font
  129.      Fonts/smallfont      : Small fallback font
  130.      Fonts/smallfont/6
  131.      Fonts/smallfont.info
  132.      Fonts/Thinpaz        : Normal font (10 isnt used)
  133.      Fonts/Thinpaz/8
  134.      Fonts/Thinpaz/10
  135.      Fonts/Thinpaz.font
  136.      [All root files above have icons copyright T.L.Bullock]
  137. @{u}@{b}2. Coverdisks and Compilations@{ub}@{uu}
  138.    This product may not  be distributed on magazine coverdisks  or as part
  139.    of a  compilation  disk in any  form without written  permission of the
  140.    author. See [1b] for further restrictions.
  141. @{u}@{b}3. Hacking etc.@{ub}@{uu}
  142.    Under  no circumstances  may  any  copyright  notices, license  notice,
  143.    disclaimer or program data be altered, hacked or otherwise changed.
  144. @{u}@{b}4. Distribution@{ub}@{uu}
  145.    You may not  copy, modify,  distribute,  sublicense  or  transfer  this
  146.    product except as expressly provided under this license. Any attempt to
  147.    otherwise copy, modify, distribute, sublicense or transfer this product
  148.    is void, and will terminate your rights to use this product.
  149. @{u}@{b}5. Licensing@{ub}@{uu}
  150.    Any parties recieving a  valid copy of this product will be  be subject
  151.    to the  same terms of  license as stated here  unless the author  gives
  152.    witnessed  written  permission to the  contrary.  In the event  of such
  153.    permission the  terms stated therein  are directed explicitely  at said
  154.    parties.  Any receiver of a distribution made by said parties are bound
  155.    by this license only.  No subsequent restrictions may be imposed and/or
  156.    amended to those granted herein.
  157. @{u}@{b}6. Acceptance of Terms@{ub}@{uu}
  158.    By using, copying  and/or  distributing this product  you indicate your
  159.    acceptance of this  license to do  so  and all  accompanying  terms and
  160.    conditions.
  161. @{u}@{b}7. Reverse Engineering@{ub}@{uu}
  162.    You may  NOT  decompile, dissassemble, re-source  or otherwise  reverse
  163.    engineer any of the programs that make up this product.
  164. @{u}@{b}8. Product Use@{ub}@{uu}
  165.    You may not use any  part of this product in part or in whole in  other
  166.    program(s)  without  the  written  permission  of  the author, with the
  167.    exception of this license notice,  which may be altered  appropriately
  168.    for your own product. This is done at the users own risk.
  169. @{u}@{b}9. Cessation of Distribution@{ub}@{uu}
  170.    You agree to  cease  distributing  this  product (programs and data) if
  171.    requested  to do so  by the  author,  even if the  author  has  granted
  172.    permission previously.
  173. @{u}@{b}10. Withdrawal of Product@{ub}@{uu}
  174.    The author reserves  the right to withdraw the  product from the market
  175.    place without warning. The author will only make such alterations where
  176.    a new version and/or the economic climate form a reason to do so.
  177. @{u}@{b}11. Price Changes@{ub}@{uu}
  178.    The author reserves  the right to alter subscription charges  for newer
  179.    versions without  advance  any notice.  Orders made to  the value  of a
  180.    previous version will only be entitled to that previous version.
  181.                                @{u}@{b}DISCLAIMER@{ub}@{uu}
  182.    THIS PRODUCT  COMES  WITH  NO  WARRANTY,  TO THE  EXTENT  PERMITTED  BY
  183.    APPLICABLE  LAW.  EXCEPT WHEN  OTHERWISE  STATED  THE COPYRIGHT  HOLDER
  184.    AND/OR OTHER  PARTIES PROVIDE THE  PROGRAM "AS IS" WITHOUT  WARRANTY OF
  185.    ANY KIND, EITHER EXPRESSED  OR IMPLIED, INCLUDING, BUT  NOT LIMITED TO,
  186.    THE IMPLIED  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  187.    PURPOSE.  THE ENTIRE  RISK AS  TO THE  QUALITY OF  PERFORMANCE OF  THIS
  188.    PRODUCT IS  WITH  YOU, THE  PRODUCT  USER.  SHOULD  THE  PRODUCT  PROVE
  189.    DEFECTIVE, YOU  ASSUME THE COST OF  ALL NECESSARY  SERVICING, REPAIR OR
  190.    CORRECTION.
  191.    IN NO EVENT UNLESS  REQUIRED BY APPLICABLE LAW  OR AGREED TO IN WRITING
  192.    WILL ANY  COPYRIGHT  HOLDER, OR  OTHER PARTY WHO  MAY REDISTRIBUTE  THE
  193.    PRODUCT  AS PERMITTED  ABOVE, BE LIABLE  TO YOU  FOR DAMAGES, INCLUDING
  194.    ANY GENERAL, SPECIAL, INCIDENTAL OR  CONSEQUENTIAL DAMAGES  ARISING OUT
  195.    OF THE USE OR INABILITY TO USE THE  PRODUCT (INCLUDING  BUT NOT LIMITED
  196.    TO LOSS OF DATA OR DATA  BEING RENDERED  INACCURATE OR LOSSES SUSTAINED
  197.    BY YOU OR THIRD  PARTIES OR A  FAILURE OF THE  PRODUCT TO OPERATE  WITH
  198.    ANY OTHER  PRODUCTS).  EVEN  IF  SUCH  HOLDER OR OTHER PARTY  HAS  BEEN
  199.    ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  200.    EVERY EFFORT  HAS BEEN MADE TO  ENSURE THAT THIS PRODUCT IS VIRUS FREE.
  201.    HOWEVER, THE AUTHOR  TAKES NO  RESPONSIBILITY  FOR THE  PRESENCE OF ANY
  202.    VIRUSES THAT MAY HAVE INFECTED YOUR DISTRIBUTION.
  203.                      @{u}@{b}DISTRIBUTION VERSION NOTES@{ub}@{uu}
  204.    You may still be  confused as to  which version  of QBox you are using.
  205.    As of v1.12e all evaluation  versions  are denoted  by vX.XXe.  That is
  206.    v1.13e,  v1.14e,  v2.00e all  denote  evaluation  versions.   The  word
  207.    EVALUATION should be present in the @{"About" link UseAbout} window too.
  208.    Note: No evaluation version was available prior to v1.12e.
  209.    Registered versions are denoted by  vX.XX and vX.XX
  210.   (the vX.XX
  211.  a cut
  212.    down  version  of  vX.XX  for  general  day to day use,  where as vX.XX
  213.    contains extras such as the preference editors).  So,  v1.13 and v1.13
  214.    are both REGISTERED versions,  so too are  v1.14 and v1.14
  215. ,  v2.00 and
  216.    v2.00
  217. .  The words REGISTERED and SHAREWARE  are present  in both vX.XX
  218.    and vX.XX
  219.  About windows.
  220.                   @{b}T.L.Bullock 1995. All rights reserved. @{ub}
  221. @endnode
  222. @node Register "QBox: Registration"
  223. <Legal Texts                                                  Introduction>
  224.                     @{b}@{u}Registration@{uu}@{ub}
  225. Sick of the restrictions of the Evaluation version? Sick of only being able
  226. to have 4x4 buttons? Sick of being restricted to I/O buffers of upto 1024?
  227. Sick of having to manually edit button and menu scripts? Sick of only being
  228. able to add 3 menu items? Sick of that annoying About requester? Well,
  229. theres a simple solution - REGISTER! Registering for QBox is a cheap way of
  230. saving lots of frustrated hair pulling. Go on, treat yourself...
  231. @{u}@{b}What do you get?@{ub}@{uu}
  232. Registered users will receive a disk containing the latest release (or the
  233. last release your fees cover (see @{"Terms of license" link Legal} section 11) of QBox. You
  234. will also receive the most uptodate release of TLB-Tools covering sorting,
  235. cross-referencing, file subtraction, basic file processing etc. Further
  236. more, special discounts may be extended to registered users for future
  237. updates and other shareware titles by the same author.
  238. Registered versions have all those annoying forced About windows, I/O,
  239. matrix and menu list restrictions removed. Not satisfied? Well, the
  240. registered distribution contains two versions of QBox: a full version
  241. with preference editors and a cut down version for day to day use. It also
  242. comes with a quick reference image to help you in learning QBox's numerous
  243. editor buttons.
  244. @{u}@{b}How to Register - private@{ub}@{uu} (Read carefully)
  245. In order to receive the latest REGISTERED SHAREWARE version you must first
  246. send a registration fee to the value of 
  247. 2 (UK sterling). An additional
  248. sum must be paid to cover postage:
  249. @{b}UK Residents@{ub}
  250. In addition, people recieving a copy on mainland Britain should add 
  251. (UK sterling) for each copy of QBox ordered to cover postage and packaging.
  252. The total fee (
  253. 3.50 UK sterling) should be mailed to the author at the
  254. below address in the form of a postal order made out to "T.L.Bullock" in
  255. the payee line.
  256. @{b}Non-UK Residents@{ub}
  257. People ordering from outside of mainland Britain should add 
  258. 3.00 (UK
  259. sterling) to cover post and packaging. The total fee (
  260. 5.00 UK sterling)
  261. should be mailed to me in British legal tender (ie. a British five pound
  262. note) sandwiched in a greetings card to disguise the envelopes contents.
  263. NOTE: I disclaim any responsibility for the loss of any moneys lost in the
  264. postal system. By mailing me cash you take full responsibility until it
  265. reaches me personally. I will only mail a registered version of QBox when
  266. the @{b}correct@{ub} moneys have reach me personally.
  267. Please send the correct registration fees and the registration form
  268. (template and examples elsewhere in this section) to:-
  269.                    Tony Bullock
  270.                    c/o 74A Shilton Road,
  271.                    Carterton,
  272.                    Oxfordshire,
  273.                    OX18 1EL,
  274.                    England (Europe).
  275. Mark the top left corner of the envelope with "QB".
  276. @{b}Registration Form (template)@{ub}
  277. Please include the following details (print out the following few lines
  278. if you like):-
  279.   Product: QBox                        Current Version: v__.____
  280.   Name:    _____________________________________________________
  281.   Address: _____________________________________________________
  282.            _____________________________________________________
  283.            _____________________________________________________
  284.            _____________________________________________________
  285.   Phone:   _____________________________________________________
  286.   Where did you obtain your QBox EVALUATION version? ___________
  287.   ______________________________________________________________
  288.   ______________________________________________________________
  289.   Fees Paid: Registration                                  
  290.              Postage (Mainland UK 
  291. 1.50, Overseas 
  292. 3.00)  +
  293. Example form:-
  294.       ________________________________________________________
  295.      |                                                        |
  296.      |  Product: QBox                 Current Version: v1.14e |
  297.      |                                                        |
  298.      |  Name:    Fred Bloggs (IRC nick: Bloggy)               |
  299.      |  Address: 1176 Mane Street,                            |
  300.      |           Yawk,                                        |
  301.      |           Yawkshyre,                                   |
  302.      |           England.                                     |
  303.      |  Phone:   +44 01913 013049                             |
  304.      |                                                        |
  305.      |  Where did you obtain you QBox EVALUATION version?     |
  306.      |    src.doc.ic.ac.uk:pub/aminet/util/wb/QBox-v1.14e.lha |
  307.      |                                                        |
  308.      |  Fees Paid: Registration                         
  309. 2.00 |
  310.      |             Postage                             +
  311. 1.50 |
  312.      |________________________________________________________|
  313. Please allow anything up to four weeks for despatch. You will usually
  314. receive your registered version ASAP, but in the event of a new version
  315. nearing completion I may delay until the new version is completed
  316. (unless you request that I send you a version immediately).
  317. NOTE: The prices shown above are correct at the time of writing this doc
  318. (27th Nov 1995) and are subject to variation. The author will only make
  319. such alterations where a new version and/or the economic climate form a
  320. reason to do so. If in doubt of the current price you may write for a
  321. quote to the above address or email me on e0190162@brookes.ac.uk.
  322. @{u}@{b}How to Register - commercial ventures@{ub}@{uu}
  323. This product can be registered to a group/company (subject to the authors
  324. disgression) for a set fee negotiated with the author.  Please @{"contact" link Contact}
  325. the author for further details.
  326. @endnode
  327. @node Introduction "QBox: Introduction"
  328. <Register                                                     Installation>
  329.                               @{u}@{b}Introduction@{ub}@{uu}
  330. QBox is a SHAREWARE utility that is designed to aid you, the user, in
  331. launching applications and CLI programs.
  332. QBox, can be used to save typing in CLI by enabling you to specify
  333. button/menu text and associated command line calls (and even scripts)
  334. simply, with no fuss or hassle.
  335. Many utilities have attempted (some even succeeding) to fill this role,
  336. however, complicated preference systems, command data restrictions and
  337. extortionate registration costs have dogged most, if not all, such
  338. systems. The QBox project is an attempt to fill some of these gaps.
  339.                                      #
  340.                                     @ @
  341.                              ---oOO-(_)-OOo---
  342. @endnode
  343. @node Install "QBox: Installation"
  344. <Introduction                                                        Usage>
  345.                               @{u}@{b}Installation@{ub}@{uu}
  346. @{u}@{b}Requirements@{ub}@{uu}
  347. Before I list the requirements I should mention I have only tested this
  348. program on a vanilla A1200 (okay its got an 80mb HD and an external XL
  349. drive - but no extra ram, fpu, mmu, 030 (gimme), 040 (yes please), 060
  350. (donations welcome)) and a CD32.
  351. Required:
  352.   An Amiga             - PC, Mac, Oric, BBC B and other similarly
  353.                          (un)sophisticated users need not apply.
  354.   OS3.0+               - OS3.0 and OS3.1 tested. Might work with OS2.04+.
  355.   GadToolsBox.library  - v38.45+ (some earlier versions might work)
  356.   ASL.library          - v39.4+  (some earlier versions might work)
  357.   DiskFont.library     - v39.3+  (some earlier versions might work)
  358. Recommended:
  359.   A harddisk           - Not really necessary but it speeds things
  360.                          up and is what QBox was really designed for.
  361.                          Saying that floppy user shouldn't be put off.
  362. @{u}@{b}Installing QBox@{ub}@{uu}
  363. Simply click on the Install-QBox icon and enter data as prompted.
  364. Alternatively, type the following:-
  365. copy QBox Sys:wbstartup/QBox
  366. copy QBox.info Sys:wbstartup/QBox.info
  367. copy QBox.guide Locale:help/english/QBox.guide
  368. copy fonts fonts: all clone
  369. The various libraries required (see above) are present on your
  370. Workbench 3.x disk.
  371. The author claims no copyright of the freeware or PD fonts used in
  372. QBox.
  373. @{u}@{b}Things you should know@{ub}@{uu}
  374. QBox will, when started without a BUTTON parameter (see @{"Usage" link Usage}) , attempt
  375. to locate a preference file called "S:Startup.QBox". If this file does not
  376. exist then a default matrix is used.
  377. At startup QBox will also attempt to load a menu preference file called
  378. "S:StartMenu.QBox" if MENU parameter is not specified.
  379. A temporary file called "RAM:QBoxEXEC.temp" is created whenever the \S
  380. option is used in a @{"script" link UseScript}. This is removed after QBox
  381. has finished running the QBox script.
  382. Help calls up Sys:utilities/MultiView and loads Locale:help/english/QBox.Guide.
  383. Both may be changed via @{"ToolTypes" link UseTTypes}.
  384. @endnode
  385. @node Usage "QBox: Usage"
  386. <Installation                                                  Main Window>
  387.                                 @{u}@{b}Usage@{ub}@{uu}
  388. QBox can be started from either workbench or shell. Either way you will
  389. open a "Main" window filled with a number of buttons (default is 5).
  390. @{u}@{b}Quick Start@{ub}@{uu} (links only available to REGISTERED users)
  391. @{" Show QRef Image (in guide)         " link "QBoxQRef.gif/main"}
  392. @{" Show QRef Image (PPShow 640x512x4) " system "PPShow QBoxQRef.gif"}
  393. @{u}@{b}General Usage@{ub}@{uu}
  394. @{" Main Window    " link UseMain}  
  395.  Start here then read as required
  396. @{" Pull-down Menu " link UseMenu}
  397. @{" Button Prefs   " link UseBPref}    [Not evaluation version]
  398. @{" User Menu Prefs" link UseUPref}    [Not evaluation version]
  399. @{" Misc Prefs     " link UseMPref}    [Not evaluation version]
  400. @{" Tool Types     " link UseTTypes}
  401. @{" File Formats   " link UseFormats}  
  402.  Evaluation users need to know this
  403. @{" Scripts        " link UseScript}  
  404.  All users need to know this
  405. @{u}@{b}Shell usage@{ub}@{uu}
  406. Synopsis: QBOX [[BUTTONFILE=]<file>] [[MENUFILE=]<file>]
  407.           [[TIMEOUT=]<n>] [[DEFFILE=]<file>]
  408. Template: BUTTONFILE,MENUFILE,TIMEOUT/K/N,DEFFILE
  409. Options :
  410.    BUTTONFILE     Path and filename of QBox button prefs file
  411.    MENUFILE       Path and filename of QBox menu prefs file
  412.    TIMEOUT/K/N    Period QBox runs with no interaction
  413.    DEFFILE        Path and filename of amigados script if QBox times out
  414. Example :
  415.    QBOX S:BootStart.QBox S:BootMenu.QBox 20 S:Startup-Sequence
  416.      means start QBox and load S:BootStart.QBox into the button matrix and
  417.      S:BootMenu.QBox into the user menu list. If the user fails to interact
  418.      with QBox for 20 seconds, QBox will launch S:Startup-Sequence and
  419.      automatically quit (ideal for choosing multiple startups)
  420. Defaults (unless otherwise defined in icon ToolTypes):
  421.    BUTTONFILE     S:Startup.QBox
  422.    MENUFILE       S:StartMenu.QBox
  423.    TIMEOUT/K/N    Infinite (ie. TIMEOUT<1)
  424.    DEFFILE        Null
  425. Note    :
  426.    DEFFILE        Only works in conjuction with TIMEOUT/K/N
  427. The DEFFILE script should be a standard AmigaDos script. However, in order
  428. to control how this script is run you can prepend the file with ;\ followed
  429. by a QBox command (RNXH) to the first line. You may not use comands B, M
  430. and S. For more on QBox commands see @{"script" link UseScript}.
  431. @endnode
  432. @node UseMain  "QBox: Usage / Main Window"
  433. <Usage                                                              Button>
  434.                               @{u}@{b}Main Window@{ub}@{uu}
  435. @{b}QBox v1.12 
  436. 1995 T.L.Bullock@{ub} window
  437. @{"          Prefs          " link UseMain}
  438. @{"   Button   " link UseMainBut}@{"   Button   " link UseMainBut}
  439. @{"   Button   " link UseMainBut}@{"   Button   " link UseMainBut}
  440. This window is where the day to day use of QBox will occur once the
  441. user has configured the preferences to their liking. For the purposes
  442. of documentation we shall call this the @{b}Main Window@{ub} although
  443. any @{"user-defined title" link UseMPTitle} may be used in the title bar.
  444. The button marked Prefs opens all three preference editors. If all three
  445. are already open then they are all closed. This button is only available
  446. in the REGISTERED version of QBox.
  447. Registered users see @{"Button Prefs   " link UseBPref}
  448.                      @{"User Menu Prefs" link UseUPref}
  449.                      @{"Misc Prefs     " link UseMPref}
  450. @endnode
  451. @node UseMainBut "QBox: Usage / Main Window / Button"
  452. <Main Window                                                  Button Prefs>
  453.                                 @{u}@{b}Buttons@{ub}@{uu}
  454. QBox supplies numerous user-definable buttons ("prefs" is NOT user-definable).
  455. The number of these buttons is defined using @{"Dim X" link UseBPDimX} and @{"Dim Y" link UseBPDimY} in the
  456. @{"Button Prefs" link UseBPref} window.
  457. Each button consists of an appropriate button name with an associated
  458. command script. These are defined in the @{"Button Prefs" link UseBPref} window in the
  459. text entry boxes labelled @{"Button" link UseBPName} and @{"Command" link UseBPCmd}
  460. respectively.
  461. Activating a button can be done by pressing the left mouse button when the
  462. mouse pointer is over the desired button OR by pressing the defined
  463. keyboard shortcut (indicated by the underlined letter in the button
  464. text).
  465. Activating on a button will result in one of two actions, depending on
  466. whether or not the Button Prefs window is visible:-
  467. a) With the Button Prefs window hidden (default) the command script for
  468.    the button selected will be executed.
  469. b) When the Button Prefs window is visible the button name and command
  470.    details will appear in the Button Preference window for editing purposes.
  471.    The current command script will not be executed in this mode of
  472.    operation.
  473. @endnode
  474. @node UseMenu "QBox: Usage / Menu"
  475. <Button                                                       New (Button)>
  476.                             @{u}@{b}Pull-Down Menu@{ub}@{uu}
  477.      @{b}Project@{ub}             @{b}User@{ub}
  478.      @{"New    " link UseMenu}*            @{"UDM 1..N" link UseUDM}
  479.      
  480.  @{"Button/Misc " link UseNew}*
  481.      
  482.  @{"User Menu   " link UseUNew}*
  483.      @{"Load   " link UseMenu}
  484.      
  485.  @{"Button/Misc " link UseLoad}
  486.      
  487.  @{"User Menu   " link UseULoad}
  488.      @{"Save   " link UseMenu}*
  489.      
  490.  @{"Button/Misc " link UseSave}*
  491.      
  492.  @{"User Menu   " link UseUSave}*
  493.      @{"SaveAs " link UseMenu}*
  494.      
  495.  @{"Button/Misc " link UseSaveAs}*
  496.      
  497.  @{"User Menu   " link UseUSaveAs}*
  498.      @{"Delete " link UseDel}*
  499.      @{"Prefs  " link UseMenu}*
  500.      
  501.  @{"Button      " link UseBPref}*
  502.      
  503.  @{"Menu        " link UseUPref}*
  504.      
  505.  @{"Misc        " link UseMPref}*
  506.      
  507.  @{"Show About  " link UseMAbTxt}*
  508.      
  509.  @{"Show Prefs  " link UseMPrBut}*
  510.      
  511.  @{"Case Buttons" link UseMCsBut}*
  512.      @{"Hide    " link UseHide}
  513.      @{"Help    " link UseHelp}
  514.      @{"About   " link UseAbout}
  515.      @{"Quit    " link UseQuit}
  516. * Indicates option unavalable to EVALUATION users.
  517.   Registered users will also notice that the * features are not present
  518.   in the REGISTERED vX.XX
  519.  version but are available in the full vX.XX
  520.   also included in your distribution. The vX.XX
  521.  is designed to run QBox
  522.   data, whilst vX.XX is designed to edit said data.
  523. @endnode
  524. @node UseNew "QBox: Usage / Menu & Button Prefs / New (Button)"
  525. <Menu                                                      New (UDM Prefs)>
  526.                                @{u}@{b}New (Button)@{ub}@{uu}
  527. Hotkey: Right Amiga + C
  528. This menu item / button prefs gadget clears the current matrix leaving the
  529. dimensions untouched. You will NOT be asked to verify your actions so take
  530. care!
  531. @endnode
  532. @node UseUNew "QBox: Usage / Menu & Menu Prefs / New (UDM Prefs)"
  533. <New (Button)                                                Load (Button)>
  534.                             @{u}@{b}New (UDM Prefs)@{ub}@{uu}
  535. Hotkey: Right Amiga + V
  536. This menu item / menu prefs gadget clears the current menu list leaving the
  537. a single hidden menu item. This item can be given a name and thereby be
  538. brought into view. You will NOT be asked to verify your actions so take
  539. care!
  540. @endnode
  541. @node UseLoad "QBox: Usage / Menu & Button Prefs / Load (Button)"
  542. <New (UDM Prefs)                                          Load (UDM Prefs)>
  543.                             @{u}@{b}Load (Button)@{ub}@{uu}
  544. Hotkey: Right Amiga + L
  545. This button / menu item brings up an ASL file requester allowing you to
  546. select a button preference file (created and saved previously with QBox).
  547. When you have selected a suitable file, the file will be loaded into the
  548. @{"button" link UseMainBut} matrix (replacing all existing definitions).
  549. A simple file format check is carried out on any selected file to ensure
  550. that menu prefs files can not be loaded into the button matrix. You will
  551. be alerted if you attempt to load a menu prefs file.
  552. @endnode
  553. @node UseULoad "QBox: Usage / Menu & Menu Prefs / Load (UDM Prefs)"
  554. <Load (Button)                                               Save (Button)>
  555.                           @{u}@{b}Load (UDM Prefs)@{ub}@{uu}
  556. Hotkey: Right Amiga + O
  557. This button / menu item brings up an ASL file requester allowing you to
  558. select a menu preference file (created and saved previously with QBox).
  559. Once a suitable file has been selected, said file will be loaded into the
  560. @{"UDM" link UseUDM} menu list (replacing all existing definitions).
  561. Basic file format checking is carried out to ensure that button prefs files
  562. can not be loaded into the menu list. You will be alerted to any attempts
  563. to load a button prefs file.
  564. @endnode
  565. @node UseSave "QBox: Usage / Menu / Save (Button)"
  566. <Load (UDM Prefs)                                         Save (UDM Prefs)>
  567.                             @{u}@{b}Save (Button)@{ub}@{uu}
  568. Hotkey: Right Amiga + W
  569. This menu item enables you, the user, to write the current @{"button" link UseMainBut} matrix
  570. over the last loaded button prefs file. There is no file requester and no
  571. confirmation, so only select this if you mean it!
  572. @endnode
  573. @node UseUSave "QBox: Usage / Menu / Save (UDM Prefs)"
  574. <Save (Button)                                            Save As (Button)>
  575.                             @{u}@{b}Save (UDM Prefs)@{ub}@{uu}
  576. Hotkey: Right Amiga + E
  577. This menu item enables you to write the current @{"UDM" link UseUDM} menu list over
  578. the last loaded menu prefs file. There is no file requester and no
  579. confirmation.
  580. @endnode
  581. @node UseSaveAs "QBox: Usage / (Menu / Save As) & (Button Prefs / Save) (Button)"
  582. <Save (UDM Prefs)                                      Save As (UDM Prefs)>
  583.                            @{u}@{b}Save As (Button)@{ub}@{uu}
  584. Hotkey: Right Amiga + S
  585. This menu item / button prefs gadget allows you to save the current @{"button" link UseMainBut}
  586. matrix to a button prefs file. Upon selecting this option you will be
  587. presented with an ASL file requester. Simply select the required file (or
  588. enter a new filename) and click on the button labelled "OK". There is no
  589. confirmation - the matrix will be saved.
  590. @endnode
  591. @node UseUSaveAs "QBox: Usage / (Menu / Save As) & (Button Prefs / Save) (UDM Prefs)"
  592. <Save As (Button)                                                   Delete>
  593.                          @{u}@{b}Save As (UDM Prefs)@{ub}@{uu}
  594. Hotkey: Right Amiga + D
  595. This menu item / menu prefs gadget allows you to save the current @{"UDM" link UseUDM}
  596. menu list to a menu prefs file. Upon selecting this option you will be
  597. presented with an ASL file requester. Select the required file (or enter
  598. a new filename) and click on the button labelled "OK". There is no
  599. confirmation.
  600. @endnode
  601. @node UseDel "QBox: Usage / Menu / Delete"
  602. <Save As                                                        Show About>
  603.                                 @{u}@{b}Delete@{ub}@{uu}
  604. This menu item enables you to delete any (unprotected) AmigaDOS file. On
  605. selection you will be requested to choose a file through an ASL file
  606. requester. Simply select the file for deletion and click on "OK". You will
  607. then be asked if you are sure you want to delete the selected file. If you
  608. are then click on "Do It" and file will be deleted.
  609. You may abort this process by clicking on the "Cancel" button in the ASL
  610. requester or the "Cancel" button in the "Are you sure?" requester.
  611. @endnode
  612. @node UseMAbTxt "QBox: Usage / Menu / Show About"
  613. <Delete                                                         Show Prefs>
  614.                               @{u}@{b}Show About@{ub}@{uu}
  615. Hotkey: Right Amiga + A
  616. This menu toggle enables you to prevent the @{"About" link UseAbout} text popping up after
  617. loading a given preference file.
  618. This toggle will only affect preference files saved with the toggle set
  619. into the "blank" position (ie. no tick next to "Show About"). It will not
  620. affect all preference file loading, just those saved with Show About
  621. disabled. The default setting is in the tick position.
  622. To use this feature you must set the toggle to a tick (show about) or
  623. blank (hide about) and save the preference file with either @{"Save" link UseSave}
  624. or @{"Save As" link UseSaveAs}.
  625. @endnode
  626. @node UseMPrBut "QBox: Usage / Menu / Show Prefs
  627. <Show About                                                  Cased Buttons>
  628.                               @{u}@{b}Show Prefs@{ub}@{uu}
  629. Hotkey: Right Amiga + P
  630. This menu toggle enables you to define whether or not the @{"Prefs" link UseBPref} button is
  631. visible (when a tick is next to "Show Prefs" menu item) or hidden (no tick)
  632. after loading.
  633. The toggle (like the @{"Show About" link UseMAbTxt} one) only affects preference files saved
  634. with the toggle set to the "blank" position (the default is a tick). Again
  635. this is specific to each preference file, not to all load operations.
  636. Unlike @{"Show About" link UseMAbTxt}, you action will become immediately apparent in the
  637. @{"Main" link UseMain} window as the @{"Prefs" link UseBPref} button appears and disappears.
  638. To use this feature you must set the toggle to a tick (show prefs) or
  639. blank (hide prefs) and save the preference file with either @{"Save" link UseSave}
  640. or @{"Save As" link UseSaveAs}.
  641. @endnode
  642. @node UseMCsBut "Qbox: Usage / Menu / Cased Buttons"
  643. <Show Prefs                                                           Hide>
  644.                              @{u}@{b}Cased Buttons@{ub}@{uu}
  645. Hotkey: Right Amiga + K
  646. This menu toggle allows you to define whether or not the current button
  647. matrix keyboard short-cuts are case sensitive or not. Case sensitivity
  648. defaults to on. If you wish to change this then simply toggle this menu
  649. option so that no tick is displayed next to the menu text.
  650. In summary, a tick on this menu item means keyboard short-cuts for each
  651. button are case sensitive (eg. _a is not the same as _A). No tick means
  652. that case sensitivity is off (eg. _a is the same as _A).
  653. You will notice that in the screen title bar there is, to the right,
  654. an area dedicated to informing you of the case sensitivity for the
  655. current button matrix (either <Case>/<No Case>). This is particularly
  656. useful for determining case sensitivity for the current matrix in a
  657. multilayered matrix systems (where buttons are linked to other matrix
  658. definitions via ;\B).
  659. This setting is saved when the button matrix is @{"saved" link UseSave}
  660. and is loaded whenever a button matrix is loaded, either manualy or from
  661. a button/menu script.
  662. @endnode
  663. @node UseHide "QBox: Usage / Menu / Hide"
  664. <Cased Buttons                                                        Help>
  665.                                 @{u}@{b}Hide@{ub}@{uu}
  666. Hotkey: Ctrl + Left Amiga + Z  or current popkey$
  667. This menu option allows you to hide QBox from view until such time as you
  668. require to see it again. This is possible because QBox is a commodity
  669. (see Amiga Use Guide).
  670. To make QBox reappear you should select "Show Interface" in the Exchange
  671. program supplied with workbench (tools/commodities drawer) or press the
  672. appropriate hotkey (default to Ctrl LCommand Z, but may be altered via the
  673. @{"ToolTypes" link UseTTypes}).
  674. @endnode
  675. @node UseHelp "QBox: Usage / Menu / Help"
  676. <Hide                                                                About>
  677.                                 @{u}@{b}Help@{ub}@{uu}
  678. Hotkey: Right Amiga + H
  679. This menu option will attempt to launch a MultiView session that will load
  680. the QBox.guide. QBox assumes that MultiView is in one of the directories
  681. defined with Path. If this is not the case then edit your user startup,
  682. adding the following line before any call to QBox:
  683.      Path Dh0:utilities ADD
  684. (Dh0:utilities is where MultiView is on Workbench 3.x distributions.)
  685. AmigaGuide users should add the following line instead:
  686.      Alias MultiView Dh0:c/AmigaGuide
  687. (You may have to adjust the AmigaGuide pathname to suit your installation.)
  688. The QBox.guide must be present as:
  689.      Locale:help/english/QBox.guide
  690. You may use the SHOWGUIDE and GUIDE @{"Tool Types" link UseTTypes} to alter the
  691. viewer and guide path and filenames.
  692. @endnode
  693. @node UseAbout "QBox: Usage / Menu & Button Prefs / About"
  694. <Help                                                                 Quit>
  695.                                 @{u}@{b}About@{ub}@{uu}
  696. Hotkey: Right Amiga + ?
  697. This button / menu item displays a brief notice window. Unlike other windows
  698. in QBox, this window has no close gadget. To close the window simply press
  699. any mouse button or key.
  700. As of v1.12 the distribution version is indicated so that you can identify
  701. whether or not your version is REGISTERED or a simple EVALUATION version.
  702. REGISTERED version Abouts also display who the program is registered to.
  703. The full conditions of use are made clear in the @{"Legal Texts" link Legal} section of
  704. this document.
  705. @endnode
  706. @node UseQuit "QBox: Usage / Quit & Menu / Quit"
  707. <About                                                User Definable Menus>
  708.                                 @{u}@{b}Quit@{ub}@{uu}
  709. HotKey: Right Amiga + Q
  710. Fairly obvious this one. Select this menu option (or the close gadget in
  711. the main window) and a requester will appear asking you whether you really
  712. want to "quit", "hide" or resume (labelled "Cancel") QBox. Clicking on
  713. "Hide" has the same effect as the @{"Hide" link UseHide} menu option.
  714. It is also possible to define a QBox button (see @{"Prefs" link UseBPref}) to quit QBox.
  715. For this read the @{"Script" link UseScript} section.
  716. NOTE: QBox attempts to clean up after itself, but as my version of Blitz2
  717. leaves 40k when using GadTools you will lose some memory. As soon as I
  718. have time I will sort this out (apparently BUM6 has a fix for this).
  719. @endnode
  720. @node UseUDM "QBox: Usage / Menu / User Definable Menus"
  721. <Quit                                                         Button Prefs>
  722.                     @{u}@{b}User Definable Menus@{ub}@{uu}
  723. As of version 1.06 QBox has supported User Definable Menus (UDMs). UDM
  724. item(s) appear beneath the menu title "User".
  725. UDM items operate in a similar way to buttons in that they both have a
  726. name with an underlying script. In fact, @{"menu scripts" link UseUPCmd} utilise all of
  727. the features found in @{"button scripts" link UseBPCmd}. A full list of
  728. these features can be found in then @{"scripts" link UseScript} section.
  729. UDMs are editted via an in-built @{"Menu Editor" link UseUPref}.
  730. @endnode
  731. @node UseBPref "QBox: Usage / Button Prefs"
  732. <User Definable Menus                                           App Window>
  733.                              @{u}@{b}Button Prefs@{ub}@{uu}
  734. Hotkey: Right Amiga + B
  735. @{b}QBox Button Prefs@{ub} window
  736.  Button @{"Button Name                               " link UseBPName}
  737. Command @{"Command script                            " link UseBPCmd}
  738. @{"Copy " link UseBPCopy}@{"Exch " link UseBPExch}@{" Clr " link UseBPClr}@{"Undo " link UseBPUndo}@{"Rvrt " link UseBPRvrt}    X @{"  X  " link UseBPX}    Y @{"  Y  " link UseBPY}
  739. @{" New " link UseNew}@{"Load " link UseLoad}@{"Save " link UseSaveAs}@{"Iprt " link UseBPIprt}@{"Eprt " link UseBPEprt} DimX @{"Dim X" link UseBPDimX} DimY @{"Dim Y" link UseBPDimY}
  740. This window is used for defining the matrix size and button definitions
  741. of the @{"Main" link UseMain} window.
  742. This window is an @{"App Window" link UseBPAppW}. That is, if an workbench icon is
  743. dropped on to this window various attributes will be filled in. Click on
  744. @{"App Window" link UseBPAppW} for more.
  745. @endnode
  746. @node UseBPAppW "QBox: Usage / Button Prefs / App Window (Button)"
  747. <Button Prefs                                                  Button Name>
  748.                           @{u}@{b}App Window (Button)@{ub}@{uu}
  749. The Button Prefs window is an App Window. That is, a window that, when a
  750. workbench icon is "dropped" on it, takes various information from the icon.
  751. In this case, QBox enters the name of the file (to which the icon belongs)
  752. and puts said name in the @{"Button Name" link UseBPName} edit area of the @{"Button Prefs" link UseBPref}
  753. window. At the same time it takes the full pathname and filename of the
  754. file and places it into the @{"Button Command" link UseBPCmd} edit area of
  755. the same window.
  756. QBox also recognises multiple icon selections (see Amiga User Guide).
  757. The button name will take the name of the first file processed. The
  758. button script will take all of the full filenames separating each
  759. with a semicolon (;). The order of the button script depends solely
  760. on the order in which workbench passes the icons to QBox.
  761. @endnode
  762. @node UseBPName "QBox: Usage / Button Prefs / Button Name"
  763. <App Window                                        Command Script (Button)>
  764.                            @{u}@{b}Button Name@{ub}@{uu}
  765. This text entry gadget enables you to alter the name of a chosen @{"button" link UseMainBut} in
  766. the @{"Main" link UseMain} window. That is, the visible text part of a button.
  767. @{b}@{u}Choosing a Button@{ub}@{uu}
  768. To choose a button open the @{"Button Prefs" link UseBPref} window and then click on the
  769. button you wish to alter (in the @{"Main" link UseMain} window). You should see the details
  770. for the selected button appear in the Button Prefs window.
  771. You can click in the Main window and press the user-defined keyboard short cut
  772. for a desired button.
  773. @{b}@{u}Altering a Button@{ub}@{uu}
  774. Now that the button has been chosen, click in the text entry gadget labelled
  775. "Button" (in the Button Prefs window). Alter the text using the keyboard
  776. (cursor keys move the cursor within the gadget). When you have finished
  777. making alterations in the text entry gadget press the Return key (the
  778. largest grey key). You should now see that the button in the Main window
  779. is altered to reflect the new name text you have just entered.
  780. Keyboard shortcuts can be made by placing an underscore before the letter
  781. deigned to be the shortcut. Eg.
  782.      Q_Box   keyboard shortcut will be  B  during normal use
  783.      QBo_x   keyboard shortcut will be  x  during normal use
  784. Note that keyboard shortcuts in the main window are case sensitive (other
  785. windows are not) and that each shortcut should be unique. If two buttons
  786. have the same shortcut then only the first occurence will be executed
  787. when in normal use (even though both buttons will have the underline under
  788. the same letter).
  789. This sounds complicated but is very intuitive (no pun intended).
  790. @endnode
  791. @node UseBPCmd "QBox: Usage / Button Prefs / Command Script (Button)"
  792. <Button Name                                                       Scripts>
  793.                          @{u}@{b}Command Script (Button)@{ub}@{uu}
  794. This text entry gadget (labelled "Command") allows an AmigaDOS / QBox
  795. script to be associated with a given button (in the  Main  window). That
  796. is, the invisible functional part of a button item.
  797. Choosing and altering a button is done in a similar way to altering the
  798. @{"Button Name" link UseBPName}. However, any changes are not immediately
  799. apparent (the button name will not change). You can, however, verify any
  800. alterations by re-choosing the button after editing if you need to.
  801. See @{"Scripts" link UseScript} for syntax.
  802. @endnode
  803. @node UseScript "QBox: Usage / Button Prefs & Menu Prefs / Scripts"
  804. <Command Script (Button)                                       Copy Button>
  805.                                  @{u}@{b}Scripts@{ub}@{uu}
  806. A QBox button/menu script is usually defined as a string of one or more
  807. AmigaDOS commands, with each command separated by a single semicolon (;).
  808.   Echo "Line 1";Echo "Line 2";Echo "Line 3"
  809. As this example stands the script will be run to a new shell window. This
  810. window will remain unclosed locking-out QBox (with any interaction being
  811. buffered) until you type "EndShell" in the new shell window. To prevent
  812. this lock-out, QBox supplies a number of script commands (or run tags).
  813. These commands should be appended to the right of the script after ";\",
  814. thus:
  815. cmd1;cmd2;cmd3;cmdN;\RNX
  816. buttonprefsfile;\B
  817. menuprefsfile;\M
  818. where R means return from CON (ie EndShell)
  819.   "   N   "   run to Nil: (useful for hiding CON:)
  820.   "   S   "   force button script to an temporary AmigaDos version in RAM
  821.   "   B   "   all text before ;\ is treated as QBox button prefs filename
  822.   "   M   "   all text before ;\ is treated as QBox menu prefs filename
  823.   "   X   "   exit from QBox as soon after launch as possible
  824.   "   H   "   wait for mouse or joystick button depression after execution
  825. So, to remedy the Eg1:
  826.   Echo "Line 1";Echo "Line 2";Echo "Line 3";Wait;\R
  827. Launching an application (such as a second QBox session) can be done thus:
  828.   QBox RAM:startup.own.QBox;\RN
  829. @{u}@{b}Overides@{ub}@{uu}
  830. Notice how \R and \N are used together as \RN or \NR (order is not
  831. important). \N will not open a shell window. \B and \M override all
  832. other QBox commands. So,
  833.   script;\RSNXB   -> button_prefs_filename;\B
  834.   script;\RSNXM   -> menu_prefs_filename;\M
  835.   script;\RSNX    -> script;\RSNX
  836. @{u}@{b}Script-Only Commands@{ub}@{uu}
  837. \S is used to get around a nasty (although unavoidable) problem in the
  838. way that AmigaDOS executes QBox scripts. A QBox script is NOT the same
  839. as an AmigaDOS script. AmigaDOS contains a number of script-only
  840. commands that can not normally be run be typed in at a shell (such as
  841. .key, failat, lab, skip etc). In normal operation QBox simply submits
  842. a batch job of AmigaDOS commands, NOT a true script hence script-only
  843. commands fall over. \S forces QBox to convert a QBox script into a
  844. temporary AmigaDos script situated in RAM:QBox.tempexe. This file is
  845. then executed and deleted. As a true AmigaDos script all script-only
  846. commands can be used.
  847. In short, use \S if a QBox script seems to fail for no apparent
  848. reason.
  849. So, say we want...
  850. ;AmigaDOS script
  851.   .key message
  852.   failat 21
  853.   Echo "<message>"
  854.   Wait
  855. ;End script
  856. ...you should have the following QBox script:
  857. ;Button script
  858.   .key message;failat21;Echo "<message>";Wait;\SR
  859. ;End script
  860. Note: .key will still remain redundant as there is no method (currently)
  861. available to define a CLI argument within QBox. .def should always be
  862. used for this reason. Most other script-only commands should work
  863. properly with \S.
  864. @{u}@{b}Loading QBox Button scripts from a Button/User-Menu@{ub}@{uu}
  865. \B will force all previous script to be treated as the path and filename of
  866. a QBox button prefs file and ignore other QBox commands. If the preference
  867. file exists, the button matrix will be reconfigured to the data outlined in
  868. the preference file. In this way you can define multilayered QBox button
  869. matrices without launching several QBox sessions. A limiting factor to this
  870. is that you can only have one matrix visible at a time. If you want to be
  871. able to move back to the previous script you will need to define a
  872. menu/button that loads the appropriate preferences with a \B (there is not
  873. internal mechanism - yet).
  874. @{u}@{b}Loading QBox Menu scripts from a Button/User-Menu@{ub}@{uu}
  875. \M is the menu equivalent of \B and operates in much the same way (only
  876. it loads menu scripts rather than button scripts).
  877. @{u}@{b}Loading QBox Button and Menu scripts from one button/menu@{ub}@{uu}
  878. \M and \B may be combined into a special case as \MB or \BM. The order of
  879. the merge determines which part of the script is used for each part. So,
  880.   buttonfile;menufile;\BM  -> buttonfile;\B &  menufile;\M
  881.   menufile;buttonfile;\MB  -> menufile;\M   &  buttonfile;\B
  882.   buttonfile;\BM           -> buttonfile;\B
  883.   menufile;\MB             -> menufile;\M
  884.   buttonfile;menufile;\B   -> buttonfile;\B
  885.   menufile;buttonfile;\M   -> menufile;\M
  886. @{u}@{b}Detaching commands within a script@{ub}@{uu}
  887. Programs in a QBox script are normally executed as each command is
  888. completed in turn, sequentially one after another (left to right).
  889. Some programs halt this process until said program has completed or
  890. are terminated, with any further commands running afterwards.
  891. The result is that QBox may lock up (buffering any user interaction)
  892. until the button script has completed.
  893. To move around this problem you can prepended any commands that may
  894. cause lockout with "Run >NIL: ". This AmigaDos call forces the command
  895. to run in the background, detaching itself from QBox. "Run " can also
  896. be used to achieve this, but may open a shell window in the process.
  897. In either case, be aware that detaching a command will mean that the
  898. next command in the button script may be executed before the detached
  899. command has finished. This means that sequential behaviour may be upset.
  900. You can get around this by building a standard AmigaDos script externally
  901. to QBox (saving it somewhere)  and call said script with
  902. Execute >NIL: scriptname;rest-of-script;\qbox-cmds
  903. Demonstration:
  904. (you will need to create a text file called "List" before trying this)
  905. Eg1: Without external script:
  906. ;Button script
  907.   Run >NIL: C:Sort List List;More List;Echo "Check if List is sorted";\R
  908. ;End script
  909. Eg2: With external script:
  910. ;External script: S:SequentialScript1
  911.   C:Sort List List
  912.   More List
  913. ;End script
  914. ;Button script
  915.   Execute >NIL: S:SequentialScript1;Echo "Script running in background";\R
  916. ;End script
  917. The first script should result in an unsorted List being displayed. This is
  918. because "More List" is executed as soon as "C:Sort List List" is launched
  919. (it does not wait for Sort to complete it's task). The second however,
  920. will display a sorted List. This is because although the external script
  921. is ran in the background, the contents of said script will be run in order.
  922. You could achieve the same effect by making a self-writing button script
  923. that creates a temporary  external script, runs it and removes it, thus:-
  924. ;Button script
  925.    Echo >RAM:temp "C:Sort List List";Echo >>RAM:temp "More List"; Execute
  926.      >NIL: RAM:temp;Echo "Script running in background";Delete Ram:temp;\R
  927. ;End script
  928. @{u}@{b}Auto-Quitting QBox@{ub}@{uu}
  929. \X is used to quit QBox as soon as the script has released complete control
  930. from QBox (see \S above). The interface will be hidden as soon as the
  931. script has been launched thereby saving on memory until such point as QBox
  932. can close itself properly. During this hide-quit stage the only trace of
  933. QBox is to be found in the CX Exchange list (and the consumed memory).
  934. @{u}@{b}Pausing Output@{ub}@{uu}
  935. \H is used to hold any window output on screen until such point as either
  936. a joystick fire button or any mouse buttons are pressed. This is of most
  937. use when debugging QBox button scripts, saving you having to add the WAIT
  938. AmigaDOS command into scripts. 
  939. Notice that pausing will take place whether or not any window was opened
  940. during script execution. For this reason it is adviseable that \H should
  941. only be used when a Shell window can be guarenteed to appear or when
  942. debugging to ensure easy user interaction. Also avoid using \H in finished
  943. button script lines that use \N or >NIL: redirection (as window output
  944. should be supressed).
  945. @{u}@{b}Embedding Semicolons@{ub}@{uu}
  946. As you will have noticed, QBox uses semicolons to seperate script
  947. commands. Most of the time this causes no problems, however, what if we
  948. want to display text with a semicolon in it? Up until v1.13 you would
  949. now be chewing you nails. Fortunately, v1.13 and above interpret script
  950. data such that semicolons can be presevered in quotes, thus:-
  951.   Echo "Eg; Text";Echo "Next Command";\RH
  952. The first quote of a pair of quotes indicates text that is not parsed
  953. (ie. semicolons are not command seperators here), and the second quote
  954. indicates where parsing resumes (ie. where semicolons become seperators).
  955. If an odd number of quotes are present then the script is virtually
  956. appended with another quote. So,
  957.   Echo "Eg; Text;Echo Next Command;\RH
  958. Becomes:-
  959.   Echo "Eg; Text;Echo Next Command";\RH
  960. Be careful!!!  
  961. @endnode
  962. @node UseBPCopy "QBox: Usage / Button Prefs / Copy Button"
  963. <Scripts                                                   Exchange Button>
  964.                          @{u}@{b}Copy Button@{ub}@{uu}
  965. Clicking on this button will cause the screen title to change informing
  966. you to select a button or press both mousebuttons to abort the copy
  967. function.
  968. Clicking on a button in the @{"Main" link UseMain} window will result in the current
  969. button (whose values are in the @{"Button Prefs" link UseBPref} window) being copied
  970. to the one clicked on.
  971. This can be particularly useful for "modelling" buttons. These "models"
  972. can then be adjusted to suit individual requirements.
  973. @endnode
  974. @node UseBPExch "QBox: Usage / Button Prefs / Exchange Button"
  975. <Copy Button                                                  Clear Button>
  976.                          @{u}@{b}Exchange Button@{ub}@{uu}
  977. This button operates not unlike @{"Copy Button" link UseBPCopy}.
  978. Clicking on this button will cause the screen title to change informing
  979. you to select a button or press both mousebuttons to abort the exchange
  980. function.
  981. Clicking on a button in the @{"Main" link UseMain} window will result in the current
  982. button (whose values are in the @{"Button Prefs" link UseBPref} window) being exchanged
  983. with the one clicked on. In effect, swapping all button attributes - ideal
  984. for rearranging QBox button layout.
  985. Tip: When turning a horizontal button arrangement into a vertical one
  986. make keep @{"DimX" link UseBPDimX} the same and adjust @{"DimY" link UseBPDimY}. Now use Exch to swap
  987. newly created blank buttons with the ones that need moving. When you
  988. have finished alter @{"DimX" link UseBPDimX} to the new (narrower) value. This way
  989. you don't have to re-enter button values. See below:-
  990.    t                t+1               t+2
  991. Original      >  Transition   >    New Layout
  992. DimX = 5         DimX = 5          DimX = 2
  993. @{u}DimY = 2         DimY = 5          DimY = 5@{uu}
  994. A B C D E        A B C D E         A F
  995. F G H I J        F G H I J         B G
  996.                  - - - - -         C H
  997.                  - - - - -         D I
  998.                  - - - - -         E J
  999. @endnode
  1000. @node UseBPClr "QBox: Usage / Button Prefs / Clear Button"
  1001. <Exchange Button                                             Undo (Button)>
  1002.                               @{u}@{b}Clear Button@{ub}@{uu}
  1003. This allows you to clear the button definition for the currently selected
  1004. one (the one whose text is visible in the @{"button prefs" link UseBPref} window).
  1005. That is, button and it's associated button script are set to null (i.e.
  1006. blanked).
  1007. That's all there is to it really.
  1008. @endnode
  1009. @node UseBPUndo "QBox: Usage / Button Prefs / Undo (Button)"
  1010. <Clear Button                                              Revert (Button)>
  1011.                                @{u}@{b}Undo Button@{ub}@{uu}
  1012. This button in the Button Prefs window enables your last button edit action
  1013. to be undone. That is, if you edit a buttons attributes (name or command)
  1014. and decide that the new button attributes are undesirable, you may, by
  1015. clicking on this button, force the button attributes to revert to the
  1016. values preset prior to the edit.
  1017. This operation will Undo the following edit events:-
  1018.   @{"App Window    " link UseBPAppW}
  1019.   @{"Button Name   " link UseBPName}
  1020.   @{"Button Command" link UseBPCmd}
  1021.   @{"Clear         " link UseBPClr}
  1022.   @{"Copy          " link UseBPCopy}
  1023.   @{"Exchange      " link UseBPExch}
  1024.   @{"Import        " link UseBPIprt}
  1025.   @{"Export        " link UseBPEprt}
  1026. Be aware
  1027. ~~~~~~~~
  1028. Undo's will only affect the very last action in the @{"Button Prefs" link UseBPref}
  1029. window. If you type some unwanted text as a button name and press the
  1030. Return key, then click back in the button name edit area and press
  1031. the return key again, you will not be able to revert back to the original
  1032. name.
  1033. The table below is an attempt to convey what`s going on. t+x is used to
  1034. show subsequent edits/undos. The initial button setting is "Original" (t),
  1035. which is then changed to "Bad Edit" (t+1). The user then hits return in
  1036. the edit field a second time thereby forcing the new and old value to be
  1037. the same (t+2). Finally the user then tries to undo "Bad Edit" back to
  1038. "Original" but finds that they can't.
  1039.              ||     t      |    t+1     |    t+2     |   t+3
  1040.              ||  Initial   |    Edit    | 2nd Return |   Undo
  1041. -------------++------------+------------+------------+---------------------
  1042. current name ||  Original  |  Bad Edit  |  Bad Edit  |  Bad Edit \_ Swapped
  1043. undone       ||  <empty1>  |  Original  |  Bad Edit  |  Bad Edit /
  1044. forgotten    ||  <empty2>  |  <empty1>  |  Original  |  Original
  1045. @endnode
  1046. @node UseBPRvrt "QBox: Usage / Button Prefs / Revert (Button)"
  1047. <Undo (Button)                                                           X>
  1048.                           @{u}@{b}Revert (Button)@{ub}@{uu}
  1049. This button can be seen as either a heavy handed Undo or a Reload option.
  1050. Both descriptions are applicable here.
  1051. Basically, Revert (Rvrt) loads the last loaded/saved button script thereby
  1052. undoing any changes and reverting the button matrix back to its original
  1053. form.
  1054. There is no verification (if there were there would be no benefit over
  1055. simply using load) so be careful.
  1056. @endnode
  1057. @node UseBPX "QBox: Usage / Button Prefs / X"
  1058. <Revert (Button)                                                         Y>
  1059.                                    @{u}@{b}X@{ub}@{uu}
  1060. This numeric entry box allows you to see the X-ordinate of the button you
  1061. are editing (in terms of it's horizontal position in the button matrix).
  1062. You may also enter a positive integer greater than 0 and less than the
  1063. matrix width (measured in number of buttons) in order to edit the
  1064. button at this position. The vertical position can be adjusted with @{"Y" link UseBPY}
  1065. No data is altered during this process. It is simple a way of selecting a
  1066. button for editing in the @{"Button Prefs" link UseBPref} window.
  1067. @endnode
  1068. @node UseBPY "QBox: Usage / Button Prefs / Y"
  1069. <X                                                         Import (Button)>
  1070.                                    @{u}@{b}Y@{ub}@{uu}
  1071. This numeric entry box allows you to see the Y-ordinate of the button you
  1072. are editing (in terms of it's vertical position in the button matrix).
  1073. You may also enter a positive integer greater than 0 and less than the
  1074. matrix height (measured in number of buttons) in order to edit the
  1075. button at this position. The horizontal position can be adjusted with @{"X" link UseBPX}
  1076. No data is altered during this process. It is simple a way of selecting a
  1077. button for editing in the @{"Button Prefs" link UseBPref} window.
  1078. @endnode
  1079. @node UseBPIprt "QBox: Usage / Button Prefs / Import (Button)"
  1080. <Y                                                         Export (Button)>
  1081.                           @{u}@{b}Import (Button)@{ub}@{uu}
  1082. By clicking on this button you will be presented with a file requester
  1083. asking for an AmigaDos script file. An AmigaDos script file is a file
  1084. that contains a list of AmigaDos commands (eg. S:User-Startup).
  1085. Upon selecting an appropriate file, QBox will overwrite the current
  1086. @{"Command Script" link UseBPCmd} (as present in the @{"Button Prefs" link UseBPref} window) with a
  1087. converted AmigaDos script.
  1088. In short, this button functions as an AmigaDos to QBox button script
  1089. converter. Ideal for replacing loads of small scripts with one QBox
  1090. When importing you should be aware that QBox treats the left most
  1091. semicolon (;) that is not embedded in quotes as the beginning of a
  1092. comment. As such all text after this semicolon (on the same line)
  1093. will be ignored. Eg.
  1094.   Echo "Eg; Horace went skiing" ; A long time ago
  1095. Becomes..
  1096.   Echo "Eg; Horace went skiing"
  1097. NOTE: QBox button scripts are batch jobs. They are not true AmigaDOS
  1098.       scripts and therefore have no support direct for script-only
  1099.       AmigaDOS commands (like .key, failat, lab, skip etc). This
  1100.       problem and its solution are discussed in @{"Scripts" link UseScript}.
  1101. @endnode
  1102. @node UseBPEprt "QBox: Usage / Button Prefs / Export (Button)"
  1103. <Import (Button)                                                     Dim X>
  1104.                           @{u}@{b}Export (Button)@{ub}@{uu}
  1105. This button is designed to export and button script to an AmigaDOS script.
  1106. Simply select a destination file using the standard ASL file requester and
  1107. the current button script (in the @{"command" link UseBPCmd} button gadget) will be sent
  1108. to the chosen file as standard AmigaDOS.
  1109. The file is headed with a comment describing where the script was sourced.
  1110. Details include button script filename, button name and any script
  1111. commands used.
  1112. @endnode
  1113. @node UseBPDimX "QBox: Usage / Button Prefs / Dim X"
  1114. <Export (Button)                                                     Dim Y>
  1115.                                  @{u}@{b}Dim X@{ub}@{uu}
  1116. This numeric entry gadget is used to define the number of @{"Buttons" link UseMainBut} wide
  1117. the @{"Main" link UseMain} window matrix is.
  1118. The value you enter will always take an absolute value (it will always be
  1119. interpreted as a positive value) and may only be an integer.
  1120. Buttons are normally the width of longest @{"Button Name" link UseBPName} text. However, if
  1121. the number of buttons wide combined with button width means that the
  1122. resulting @{"Main" link UseMain} window exceeds the current screen width, button widths
  1123. are reduced by a multiple of 8 pixels. This ensures that all buttons are
  1124. displayed, but at the cost of button name text being reduced in length.
  1125. This is best avoided by increasing @{"Dim Y" link UseBPDimY} if possible, or by using
  1126. @{"multilayered" link UseScript} matrices.
  1127. NOTE: The button matrix reloads when the matrix size is altered. This means
  1128. that the button matrix contains as many of the defined buttons as will fit
  1129. into this area (without affecting layout). The downside is that you should
  1130. save the button matrix prior to altering this value.
  1131. @endnode
  1132. @node UseBPDimY "QBox: Usage / Button Prefs / Dim Y"
  1133. <Dim X                                                          Menu Prefs>
  1134.                                  @{u}@{b}Dim Y@{ub}@{uu}
  1135. This numeric entry gadget is used to define the number of @{"Buttons" link UseMainBut} high
  1136. the @{"Main" link UseMain} window matrix is.
  1137. The value you enter will always take an absolute value (it will always be
  1138. interpreted as a positive value) and may only be an integer.
  1139. Buttons are normally the 14 pixels high. However, if the number of buttons
  1140. high combined with button height means that the resulting @{"Main" link UseMain} window
  1141. exceeds the current screen height, the button height is reduced by a minimum
  1142. number of pixels. This ensures that all buttons are displayed, but at the
  1143. cost of obscuring all or part of the button text.
  1144. This is best avoided by increasing @{"Dim X" link UseBPDimX} if possible, or by using
  1145. @{"multilayered" link UseScript} matrices.
  1146. NOTE: The button matrix reloads when the matrix size is altered. This means
  1147. that the button matrix contains as many of the defined buttons as will fit
  1148. into this area (without affecting layout). The downside is that you should
  1149. save the button matrix prior to altering this value.
  1150. @endnode
  1151. @node UseUPref "QBox: Usage / UDM Menu Prefs"
  1152. <DimY                                               App Window (UDM Prefs)>
  1153.                             @{u}@{b}Menu Prefs@{ub}@{uu}
  1154. Hotkey: Right Amiga + M
  1155. @{b}QBox Button Prefs@{ub} window
  1156.    Menu @{"Menu Name          " link UseUPName} HKey @{"HKey " link UseUPKey}
  1157. Command @{"Command Script                 " link UseUPCmd}
  1158. @{"Copy " link UseUPCopy}@{"Exch " link UseUPExch}@{" Clr " link UseUPClr}@{"Undo " link UseUPUndo}@{"Rvrt " link UseUPRvrt} Item @{"Item " link UseUPItem}
  1159. @{" New " link UseUNew}@{"Load " link UseULoad}@{"Save " link UseUSaveAs}@{"Iprt " link UseUPIprt}@{"Eprt " link UseUPEprt}  Dim @{" Dim " link UseUPDim}
  1160. This window is used for defining @{"user-definable menus" link UseUDM} (UDMs).
  1161. This window is an @{"App Window" link UseUPAppW}. That is, if an workbench icon is
  1162. dropped on to this window various attributes will be filled in. Click on
  1163. @{"App Window" link UseUPAppW} for more.
  1164. @endnode
  1165. @node UseUPAppW "QBox: Usage / Menu Prefs / App Window (UDM Prefs)"
  1166. <Menu Prefs                                                      Menu Name>
  1167.                         @{u}@{b}App Window (UDM Prefs)@{ub}@{uu}
  1168. The Menu Prefs window is an App Window. That is, when a workbench icon is
  1169. "dropped" on it, various information from the icon is placed in the window
  1170. thereby saving wear on your fingers.
  1171. Here, QBox enters the name of the file (to which the icon belongs) and
  1172. places it in the @{"Menu Name" link UseUPName} edit area of the @{"Menu Prefs" link UseUPref}
  1173. window. At the same time it takes the full pathname and filename of the
  1174. file and places it into the @{"Menu Command" link UseUPCmd} edit area of
  1175. the same window.
  1176. QBox also recognises multiple icon selections (see Amiga User Guide). The
  1177. current menu name will take the name of the first file processed. The
  1178. current menu script will take all of the full filenames separating each
  1179. with a semicolon (;). The order of the menu script depends solely on the
  1180. order in which workbench passes each icons to QBox.
  1181. @endnode
  1182. @node UseUPName "QBox: Usage / Menu Prefs / Menu Name"
  1183. <App Window (UDM Prefs)                         Command Script (UDM Prefs)>
  1184.                              @{u}@{b}Menu Name@{ub}@{uu}
  1185. This text entry gadget enables you to alter the name of a chosen @{"UDM" link UseUDM} menu
  1186. item. That is, the visible text part of a menu item under the User menu title.
  1187. @{b}@{u}Choosing a Menu item@{ub}@{uu}
  1188. To choose a menu item open the @{"Menu Prefs" link UseUPref} window and then select the
  1189. required user menu item from the pull-down menus. You should see the
  1190. details for the selected menu item appear in the Menu Prefs window.
  1191. You can use the menu items hotkey, if one exists, for selection purposes.
  1192. @{b}@{u}Altering a Menu@{ub}@{uu}
  1193. Now that the menu has been chosen, click in the text entry gadget labelled
  1194. "Menu" (in the Menu Prefs window). Alter the text using the keyboard
  1195. (cursor keys move the cursor within the gadget). When you have finished
  1196. making alterations in the text entry gadget press the Return key (the
  1197. largest grey key). After a major window update you should see that the menu
  1198. item has changed in the user menu list.
  1199. @endnode
  1200. @node UseUPCmd "QBox: Usage / Menu Prefs / Command Script (UDM Prefs)"
  1201. <Menu Name                                                          HotKey>
  1202.                        @{u}@{b}Command Script (UDM Prefs)@{ub}@{uu}
  1203. This text entry gadget (labelled "Command") allows an AmigaDOS / QBox
  1204. script to be associated with a given user menu item. That is, the invisible
  1205. functional part of a menu item.
  1206. Choosing and altering a menu is done in a similar way to altering the
  1207. @{"Menu Name" link UseUPName}. However, any changes are not immediately
  1208. apparent (the menu name will not change). You can, however, verify any
  1209. alterations by re-choosing the button after editing if you need to.
  1210. See @{"Scripts" link UseScript} for syntax.
  1211. @endnode
  1212. @node UseUPKey "QBox: Usage / Menu Prefs / HotKey"
  1213. <Command Script (UDM Prefs)                                      Copy Menu>
  1214.                              @{u}@{b}HotKey@{ub}@{uu}
  1215. This text entry gadget (labelled "HKey") allows a single character code to
  1216. be combined with the Right Amiga key to form a hotkey for the current
  1217. user menu item being edited.
  1218. Simply type in the desired character and it will be assigned. However, if
  1219. the key combination is already present in the menus you will be told to
  1220. choose another character.
  1221. To check the assignment has gone as planned simply view the user menu
  1222. list (holding right mouse button over and moving the mouse over "User"
  1223. in the screen title bar).
  1224. @endnode
  1225. @node UseUPCopy "QBox: Usage / Menu Prefs / Copy Menu"
  1226. <HotKey                                                      Exchange Menu>
  1227.                           @{u}@{b}Copy Menu@{ub}@{uu}
  1228. Clicking on this button will cause the screen title to change informing
  1229. you to select a user menu item or press both mouse buttons to abort the
  1230. copy function.
  1231. Selecting a menu item from the "user" menu list will result in the current
  1232. menu (whose values are in the @{"Menu Prefs" link UseUPref} window) being copied
  1233. to the one clicked on.
  1234. This is useful for "modelling" menus. These "models" can then be adjusted
  1235. to suit individual requirements.
  1236. Note that it is usual for the hotkey to be abandoned in a copy to prevent
  1237. multiple menus with the same hotkey.
  1238. @endnode
  1239. @node UseUPExch "QBox: Usage / Menu Prefs / Exchange Menu"
  1240. <Copy Menu                                                      Clear Menu>
  1241.                           @{u}@{b}Exchange Menu@{ub}@{uu}
  1242. This button operates not unlike @{"Copy Menu" link UseUPCopy}.
  1243. Clicking on this button will cause the screen title to change informing
  1244. you to select a user menu item or press both mousebuttons to abort the
  1245. exchange function.
  1246. Selecting a menu item from the "user" menu list will result in the current
  1247. menu (whose values are in the @{"Menu Prefs" link UseUPref} window) being exchanged
  1248. with the one clicked on. In effect, swapping the two menu items attributes
  1249. - ideal for rearranging QBox button layout.
  1250. Hotkeys are retained.
  1251. @endnode
  1252. @node UseUPClr "QBox: Usage / Menu Prefs / Clear Menu"
  1253. <Exchange Menu                                                 Undo (Menu)>
  1254.                                @{u}@{b}Clear Menu@{ub}@{uu}
  1255. This allows you to clear the current menu item definition (the one whose
  1256. text is visible in the @{"menu prefs" link UseUPref} window). That is,
  1257. the menu name and it's associated menu script are set to null (i.e.
  1258. blanked).
  1259. @endnode
  1260. @node UseUPUndo "QBox: Usage / Menu Prefs / Undo (UDM Prefs)"
  1261. <Clear Menu                                             Revert (UDM Prefs)>
  1262.                            @{u}@{b}Undo (UDM Prefs)@{ub}@{uu}
  1263. This button in the Menu Prefs window enables your last menu edit action to
  1264. be undone. That is, if you edit a menus attributes (name or command) and
  1265. decide that the new menu items attributes are undesirable, you may, by
  1266. clicking on this button, force the menus attributes to revert to the
  1267. values set prior to the edit.
  1268. This operation will Undo the following edit events:-
  1269.   @{"App Window   " link UseUPAppW}
  1270.   @{"Menu Name    " link UseUPName}
  1271.   @{"Menu Command " link UseUPCmd}
  1272.   @{"Clear Menu   " link UseUPClr}
  1273.   @{"Copy Menu    " link UseUPCopy}
  1274.   @{"Exchange Menu" link UseUPExch}
  1275.   @{"Menu Import  " link UseUPIprt}
  1276.   @{"Menu Export  " link UseUPEprt}
  1277. Be aware
  1278. ~~~~~~~~
  1279. Undo's will only affect the very last action in the @{"Menu Prefs" link UseUPref}
  1280. window. The rules documented in "Be aware" section of @{"Undo (Button)" link UseBPUndo}
  1281. apply equally here. Please read them if you have not done so already.
  1282. @endnode
  1283. @node UseUPRvrt "QBox: Usage / Menu Prefs / Revert (UDM Prefs)"
  1284. <Undo (UDM Prefs)                                                     Item>
  1285.                          @{u}@{b}Revert (UDM Prefs)@{ub}@{uu}
  1286. This button can be seen as either a heavy handed Undo or a Reload option.
  1287. Both descriptions are applicable here.
  1288. Basically, Revert (Rvrt) loads the last loaded/saved menu definition thus
  1289. undoing any changes and reverting the menu back to its original form.
  1290. There is no verification (if there were there would be no benefit over
  1291. simply using load) so be careful.
  1292. @endnode
  1293. @node UseUPItem "QBox: Usage / Menu Prefs / Item"
  1294. <Revert (UDM Prefs)                                     Import (UDM Prefs)>
  1295.                                  @{u}@{b}Item@{ub}@{uu}
  1296. This numeric entry box allows you to see the X-ordinate of the button you
  1297. are editing (in terms of it's horizontal position in the button matrix).
  1298. You may also enter a positive integer greater than 0 and less than the
  1299. matrix width (measured in number of buttons) in order to edit the
  1300. button at this position. The vertical position can be adjusted with @{"Y" link UseBPY}
  1301. No data is altered during this process. It is simple a way of selecting a
  1302. button for editing in the @{"Button Prefs" link UseBPref} window.
  1303. @endnode
  1304. @node UseUPIprt "QBox: Usage / Menu Prefs / Import (UDM Prefs)"
  1305. <Item                                                   Export (UDM Prefs)>
  1306.                          @{u}@{b}Import (UDM Prefs)@{ub}@{uu}
  1307. By clicking on this button you will be presented with a file requester
  1308. asking for an AmigaDos script file. An AmigaDos script file is a file
  1309. that contains a list of AmigaDos commands (eg. S:User-Startup).
  1310. Upon selecting an appropriate file, QBox will overwrite the current
  1311. @{"Command Script" link UseUPCmd} (as present in the @{"Menu Prefs" link UseUPref} window) with a
  1312. converted AmigaDos script.
  1313. In short, this button functions as an AmigaDos to QBox menu script
  1314. converter.
  1315. When importing you should be aware that QBox treats the left most
  1316. semicolon (;) that is not embedded in quotes as the beginning of a
  1317. comment. As such all text after this semicolon (on the same line)
  1318. will be ignored. Eg.
  1319.   Echo "Eg; Horace went skiing" ; A long time ago
  1320. Becomes..
  1321.   Echo "Eg; Horace went skiing"
  1322. NOTE: QBox menu scripts are batch jobs. They are not true AmigaDOS
  1323.       scripts and therefore have no support direct for script-only
  1324.       AmigaDOS commands (like .key, failat, lab, skip etc). This
  1325.       problem and its solution are discussed in @{"Scripts" link UseScript}.
  1326. @endnode
  1327. @node UseUPEprt "QBox: Usage / Menu Prefs / Export"
  1328. <Import (UDM Prefs)                                                    Dim>
  1329.                          @{u}@{b}Export (UDM Prefs)@{ub}@{uu}
  1330. This button works much the same as Import, but instead of converting
  1331. AmigaDOS scripts to menu scripts, this converts Menu scripts to AmigaDos
  1332. ones.
  1333. First of all you will be asked to select/define the filename of the new
  1334. AmigaDOS script using a standard ASL requester. Once done, QBox will
  1335. automatically convert the current menu script (in the @{"command" link UseUPCmd} string
  1336. gadget) to AmigaDOS writing all output the selected file.
  1337. The resultant AmigaDOS script will contain a single comment line on the
  1338. first line. This comment basically informs any readers where the script
  1339. was exported from giving details of menu script filename, menu item name
  1340. and any script commands present.
  1341. NOTE: The menulist reloads when the maximum menu size is altered. This
  1342. means that the menu list contains as many of the defined menu items as
  1343. will fit into this area (without affecting layout). The downside is that
  1344. you should save the menu list prior to altering this value.
  1345. @endnode
  1346. @node UseUPDim "QBox: Usage / Menu Prefs / Dim"
  1347. <Export (UDM Prefs)                                             Misc Prefs>
  1348.                                   @{u}@{b}Dim@{ub}@{uu}
  1349. This numeric entry gadget is used to define the number of menu items deep
  1350. the @{"User Defined Menu" link UseUDM} list is.
  1351. The value you enter will always take an absolute value (it will always be
  1352. interpreted as a positive value) and may only be an integer.
  1353. Obviously, the depth of the menu is limitted by the screen height you are
  1354. working with. To tackle this problem you can use multilayered menu scripts
  1355. (using ;\M). See @{"Scripts" link UseScript} for more.
  1356. @endnode
  1357. @node UseMPref "QBox: Usage / Misc Prefs"
  1358. <Dim                                                            I/O Button>
  1359.                          @{u}@{b}Miscellaneous Prefs@{ub}@{uu}
  1360. Hotkey: Right Amiga + N
  1361. @{b}QBox Misc Prefs@{ub} window
  1362. I/O Buffer @{"I/O Button Size" link UseMPIb}   I/O Menu @{"I/O Menu Size" link UseMPIm}
  1363.  Win Title @{"Window Title                            " link UseMPTitle}
  1364. @{"                         About                     " link UseAbout}
  1365. This small interface is neatly tucked away under the Prefs/Misc menu item.
  1366. It is separate from the @{"Button Prefs" link UseBPref} window as it has nothing to do
  1367. with buttons.
  1368. @endnode
  1369. @node UseMPIb "QBox: Usage / Misc Prefs / I/O Button"
  1370. <Misc Prefs                                                       I/O Menu>
  1371.                          @{u}@{b}I/O Button@{ub}@{uu}
  1372. This numeric edit gadget enables you, the user, to set the I/O buffer size
  1373. used to read button preference files. That is, you can set how much data
  1374. will be accepted on every file read. The larger the buffer, the more room
  1375. for lengthy button scripts.
  1376. The value defaults to 8192 which gives about 8kb for each button script
  1377. line (less other button details). The minimum allowable value is 160 and
  1378. the maximum is 65535. However, as the I/O Buffer increasing in size so
  1379. does QBox's instability. This is a problem rooted in Blitz2 that I am
  1380. currently having trouble solving. Suggestions are welcome.
  1381. A safe upper limit is about 16384. Experiment with caution!
  1382. ALWAYS: Ensure that the length of any given line in the prefs file does
  1383. not exceed the I/O buffer size. You may end up with some odd behaviour
  1384. otherwise. You can use GetSize (part of the TLB-Tools distribution)
  1385. to check this if you are unsure of this fact.
  1386. @endnode
  1387. @node UseMPIm "QBox: Usage / Misc Prefs / I/O Menu"
  1388. <I/O Button                                                   Window Title>
  1389.                           @{u}@{b}I/O Menu@{ub}@{uu}
  1390. This numeric edit gadget enables you, the user, to set the I/O buffer size
  1391. used to read menu preference files. That is, the maximum number of
  1392. characters read/written during file I/O.
  1393. The value defaults to 8192 giving upto 8kb for each line in the menu
  1394. script. The minimum value is 160 and the maximum 65535. Take care as you
  1395. increase this problem, as QBox becomes more unstable the larger the
  1396. value used.
  1397. A safe upper limit is about 16384. Experiment with caution!
  1398. ALWAYS: Ensure that the length of any given line in the prefs file does
  1399. not exceed the I/O buffer size.
  1400. The same rules and cautions apply to the I/O Menu buffer as those stated
  1401. in @{"I/O Button" link UseMPIb}.
  1402. @endnode
  1403. @node UseMPTitle "QBox: Usage / Misc Prefs / Window Title"
  1404. <I/O Menu                                                        ToolTypes>
  1405.                          @{u}@{b}Window Title@{ub}@{uu}
  1406. This text entry gadget allows you to define the @{"Main" link UseMain} windows title bar
  1407. text.
  1408. Simply enter your text and hit return. The main window will update and you
  1409. title text will appear. That's all there is to it really.
  1410. @endnode
  1411. @node UseTTypes "QBox: Usage / ToolTypes"
  1412. <Window Title                                                      Contact>
  1413.                               @{u}@{b}ToolTypes@{ub}@{uu}
  1414. QBox supports icon tool types (see Amiga User Guide) that may be edited
  1415. from the icon information screen. Currently, the following tooltypes
  1416. are supported:-
  1417. DONOTWAIT
  1418. This tooltype prevents other programs being held up until QBox has
  1419. finished during system boot up. If QBox is present in your WBStartup
  1420. drawer you should have this present in QBox.info. Technically speaking
  1421. DONOTWAIT is handled externally to QBox by workbench 2.x/3.x.
  1422. CX_POPUP=Yes|No
  1423. This tooltype takes a single argument that maybe either YES or NO
  1424. (eg. CX_POPUP=YES). This icon tooltype simply defines whether or not the
  1425. QBox interface is visible when the program is started or not. If
  1426. "CX_POPUP=NO" QBox will run in the background until "Enable"/"Show
  1427. Interface" is clicked on in the commodities Exchange program, or
  1428. until you press the QBox hotkey (default: ctrl lcommand z).
  1429. (See Amiga User Guide)
  1430. CX_POPKEY=hotkey
  1431. This icon tooltype is used to define what keys force QBox out of hiding
  1432. (see @{"Hide" link UseHide} and CX_POPUP above). Several examples
  1433. follow:
  1434.   CX_POPKEY=ctrl alt z
  1435.   CX_POPKEY=rcommand ralt del
  1436.   CX_POPKEY=ctrl lcommand z
  1437. BUTTONFILE=filename
  1438. This is used to define the path and filename of a QBox button prefs
  1439. file. The CLI BUTTONFILE argument overrides this tooltype if defined.
  1440. Eg. BUTTONFILE=Startup.QBox
  1441. MENUFILE=filename
  1442. This is much the same as BUTTONFILE (above) only this is used to
  1443. define the path and filename of a QBox menu prefs file. 
  1444. CLI MENUFILE argument overrides this tooltype if defined.
  1445. Eg. MENUFILE=StartMenu.QBox
  1446. TIMEOUT=secs
  1447. The tooltype equivalent of TIMEOUT=secs CLI argument. This tooltype
  1448. is used to define the amount of time (in seconds) that QBox
  1449. can be left inactive before quitting. The CLI TIMEOUT argument
  1450. overrides this tooltype if it is defined.
  1451. Eg. TIMEOUT=20
  1452. DEFFILE=filename
  1453. Another CLI equivalent, this time of CLI DEFFILE=file. If the timeout
  1454. feature is used (either through the tooltype or CLI TIMEOUT=secs) and
  1455. QBox is left to timeout, then the AmigaDOS script file defined here
  1456. will be executed. CLI DEFFILE=file overrides this tooltype if it is
  1457. defined.
  1458. Note: The AmigaDOS script can be headed with ;\RNXH tags on the first
  1459. line of the file so that execution can be controlled.
  1460. Eg. DEFFILE=S:Startup-Sequence
  1461. where S:Startup-Sequence's first line reads ";\RN" (no quotes).
  1462. SHOWGUIDE=filename
  1463. This is used to define multiview/amigaguide/ppguide path and filename
  1464. that is used when @{"Help" link UseHelp} is selected from the QBox menus.
  1465. Eg. SHOWGUIDE=Dh0:utilities/MultiView
  1466. GUIDE=filename
  1467. This is used to define where the QBox AmigaGuide (tm) resides that is
  1468. used when @{"Help" link UseHelp} is selected from the QBox menus.
  1469. Eg. GUIDE=Locale:help/english/QBox.guide
  1470. MAINX=x ord
  1471. MAINY=y ord
  1472. These two tooltypes are used to define the position of the @{"Main" link UseMain}
  1473. window. x ord and y ord should be replaced with X and Y screen co-ordinates
  1474. respectively.
  1475. Eg. MAINX=0
  1476.     MAINY=20
  1477. BUTTONX=x ord
  1478. BUTTONY=y ord
  1479. These two tooltypes are similar to MAINX and MAINY, only this pair define
  1480. the window position of the @{"Button Prefs" link UseBPref} window.
  1481. Eg. BUTTONX=360
  1482.     BUTTONY=196
  1483. MISCX=x ord
  1484. MISCY=y ord
  1485. This pair of tooltypes define the position of the @{"Misc Prefs" link UseMPref} window.
  1486. As with MAINX, MAINY, BUTTONX and BUTTONY this pair should be supplied with
  1487. the window position co-ordinates.
  1488. Eg. MISCX=0
  1489.     MISCY=196
  1490. MENUX=x ord
  1491. MENUY=y ord
  1492. This pair of tooltypes define the @{"Menu Prefs" link UseUPref} window position. As
  1493. with the other "position" tooltypes you should supply this pair with the
  1494. required window co-ordinates.
  1495. Eg. MENUX=398
  1496.     MENUY=14
  1497. Note: MAINX, MAINY, BUTTONX, BUTTONY, MISCX, MISCY, MENUX and MENUY are
  1498. used to define the top left corner of Main, Button and Misc preference
  1499. windows. The top left of the screen is x=0, y=0. Value limits are  x=640
  1500. and y=512. Dont't worry so much about limits QBox will move windows until
  1501. they are in view.
  1502. @endnode
  1503. @node UseFormats "QBox: File formats"
  1504. <ToolTypes                                                         Contact>
  1505.                             @{u}@{b}File Formats@{ub}@{uu}
  1506. @{u}@{b}Button Scripts@{ub}@{uu}
  1507. The first entry (or header) of a button script is used to define matrix
  1508. details and other properties fixed for the entire matrix:-
  1509. @{"DimX" link UseBPDimX},@{"DimY" link UseBPDimY},@{"Window_Title" link UseMPTitle},@{"nnnnn" link UseMPIb}@{"A" link UseMAbTxt}@{"C" link UseMCsBut}@{"P" link UseMPrBut}
  1510. [Links above show editor text that can be applied at least in part here]
  1511. where:-
  1512.   dimx  is the width of the button matrix measured in buttons
  1513.   dimy  is the height of the button matrix measured in buttons
  1514.   window_title  is the text that appears in the window drag bar
  1515.   nnnnn  is the i/o buffer size measured in characters
  1516.   A  turns off autoabout (but not forced auto-abouts in EVALUATION version)
  1517.   C  turns off case sensitivity of buttons
  1518.   P  turns off prefs button (REGISTERED vX.XX version only)
  1519. example:-
  1520.   1,2,Example,1024AC
  1521.   means 1x2 matrix
  1522.         Window drag bar contains "Example"
  1523.         Maximum line length of 1024 allowed
  1524.         Auto-abouts off
  1525.         Case sensitivity off
  1526.         Prefs button on (because of it's omission in the header)
  1527. All lines after this are used to dictate individual button properties:-
  1528. @{"X" link UseBPX},@{"Y" link UseBPY},@{"Button_Name" link UseBPName},@{"Button_Script" link UseBPCmd}
  1529. [Links above show editor text that can be applied at least in part here]
  1530. where:-
  1531.   X is the button X ordinate (1=left most column, DimX=right most column)
  1532.   Y is the button Y ordinate (1=top row, DimY=bottom row)
  1533.   Button_Name is the text displayed in the button gadget
  1534.   Button_Script is the functional part of the button (see @{"Scripts" link UseScript} for more)
  1535. example:-
  1536.   So with the example for the header we could have
  1537.   1,2,Example,1024AC
  1538.   1,1,Top Button,Echo "Top Button pressed";\RH
  1539.   1,2,Bottom Button,Echo "Bottom Button pressed";\RH
  1540.   which would appear thus (only using gadtools!):-
  1541.      _______________
  1542.     |
  1543. |Example____|=|
  1544.     |__Top Button___|  -> Top Button Pressed
  1545.     |_Bottom Button_|  -> Bottom Button Pressed
  1546. Note: The button_script may contain commas.
  1547. @{u}@{b}Menu Scripts@{ub}@{uu}
  1548. The first line of a menu script file is concerned with the number of user
  1549. menu items present in the list. A second field is concerned with the I/O
  1550. buffer size for menu scripts.
  1551. @{"Menu_Items" link UseUPDim},@{"Menu_Buffer" link UseMPIm}
  1552. [Links above show editor text that can be applied at least in part here]
  1553. where:-
  1554.   Menu_Items is the number of menu items (lines) in the file
  1555.   Menu_Buffer is the maximum length possible for menu script lines
  1556. example:-
  1557.   3,8196
  1558.   means Add 3 menu items to the user menu
  1559.         Max menu script line length of 8196
  1560. All lines after the header define actual menu items and their properties:-
  1561. @{"Menu_Text" link UseUPName},@{"Hotkey" link UseUPKey},@{"Menu_Script" link UseUPCmd}
  1562. [Links above show editor text that can be applied at least in part here]
  1563. where:-
  1564.   Menu_Text is the text displayed in the "User" pull-down menu
  1565.   Hotkey is the key that, when pressed with the Right Amiga key, is used as
  1566.     a keyboard short cut for the menu item.
  1567.   Menu_Script is the functional part of the menu item (see @{"Scripts" link UseScript} for more)
  1568. example:-
  1569.   So with the example we had for the header line we could have
  1570.   3,8196
  1571.   Hello,1,Echo "Hello";\RH
  1572.   Other Menu,2,S:AlternateMenu.QBox;\M
  1573.   MultiView,3,Run >NIL: Dh0:utilities/multiview Screen;\RN
  1574.   which would appear in the pulldown menus thus:-
  1575.   _Project______User______________________
  1576.                | Hello       @{bg text}@{fg background}A1@{fg text}@{bg background} |
  1577.                | Other Menu  @{bg text}@{fg background}A2@{fg text}@{bg background} |
  1578.                |_MultiView___@{bg text}@{fg background}A3@{fg text}@{bg background}_|
  1579. @endnode
  1580. @node Contact "QBox: Contact"
  1581. <File Formats                                                      Credits>
  1582.                      @{u}@{b}Contacting the Author@{ub}@{uu}
  1583. The author may currently be contacted for commercial fee negotiation at
  1584. the following address:-
  1585.                               T.L.Bullock
  1586.                               c/o 74A Shilton Road,
  1587.                               Carterton,
  1588.                               Oxfordshire OX18 1EL,
  1589.                               England.
  1590. Any enquiries pertaining bug reports, new versions, problems or other
  1591. programs by the same author may be obtained at the above address or by
  1592. emailing (valid until Dec 1995 - email address may change there after):
  1593.                               e0190162@brookes.ac.uk
  1594. @endnode
  1595. @node Credits "QBox: Credits"
  1596. <Contact                                                           History>
  1597.                              @{u}@{b}Credits@{ub}@{uu}
  1598. QBox was designed, implemented and documented by the author and copyright
  1599. holder T.L.Bullock.
  1600. About the author
  1601.   Name:   Tony Bullock
  1602.   Age :   23 
  1603.   Stat:   Married
  1604.   Aka :   hAVoC / Mariner
  1605.   Occup:  Between uni and work
  1606. A special thanks must go to the following people:-
  1607.   Acid Software          Creators of Blitz Basic 2 - this would not
  1608.                          have been possible without them. Shame about
  1609.                          the support tho.
  1610.   Steven Matty &         (of Leading Edge Software) for creating
  1611.   Stephen McNamara       RIBlitzLibs (
  1612. 1994,95) and supporting it's
  1613.                          users (me 4 1  =8O).
  1614.                          Thanks also for the help concerning various
  1615.                          blitz/RI functions - its very much
  1616.                          appreciated.
  1617.                          Blitz coders: get RIBlitzLibs now!
  1618.   Richard T. Elmore      (of HeadSoft Software) for creating ElmoreLibs
  1619.                          (
  1620. 1994). Nice.
  1621.                          Blitz coders: get this too!
  1622.   Liz                    For putting up with the hours of programming.
  1623. @endnode
  1624. @node History "QBox: History"
  1625. <Credits                                                            Future>
  1626.                              @{u}@{b}History@{ub}@{uu}
  1627. Newest first:-
  1628. v1.14    Update: ToolTypes work properly (thanks Leading Edge)
  1629.                  CLI commands now match tooltype names (saves confusion):-
  1630.                    BUTTON  -> BUTTONFILE
  1631.                    MENU    -> MENUFILE
  1632.                    SECONDS -> TIMEOUT
  1633.                    DEFAULT -> DEFFILE
  1634.          Bugfix: TIMEOUT function now works. 
  1635.          Note:   Only a minor update due to lack of free time
  1636.                  ToolTypes fixed with new tooltypes.obj from Leading Edge
  1637. ___________________________________________________________________________
  1638. v1.13     New: Rvrt (Revert) in button&menu prefs for reloading scripts
  1639.                Eprt (Export) in button&menu prefs allows script to amigados
  1640.                /H QBox command for pausing output
  1641.           Update: Embedded semicolons in quotes are not command seperators
  1642.                Port changed to Iprt (Import) (key short-cut now "I")
  1643.                Verification when UDMs are NEWed
  1644.                Load code altered slightly (internal)
  1645.                Default matrix settings improved
  1646.           Bugfix: Window titles now update properly
  1647.                Load and Save "talk" to prefs eds better (internal)
  1648.                Menu copy is UNDOne hotkey
  1649.                Menu exch now UNDOes properly (was really bad)
  1650.                Cancelled SaveAs no longer spoils DimX/Y updates
  1651.                Menu hotkeys now work (simple fix)
  1652.                AppWindows now work (DEFLIBS trouble made problems in v1.12)
  1653.           Note: v1.13/
  1654. /e and above use conditional compiling. This means
  1655.                I should be able to spend more time authoring new QBox
  1656.                features rather than messing about with updating each
  1657.                individual sub-version code (hopefully). Say "Hurrah!"
  1658. v1.12     New: Case Buttons menu item for key short-cut case sensitivity
  1659.                Delete menu item for deleting unwanted scripts/files
  1660.                \B(\L) and \M can now be used together as \MB or \BM
  1661.                Shareware registration scheme incorporated (encrypted data)
  1662.                I/O Menu buffer for control menu script file I/O
  1663.           Update: \L now \B as in \B(utton) and \M(enu) scripts
  1664.                CLI FILE argument changed to BUTTON
  1665.                Commas can appear in functional part of button/menu scripts
  1666.           Bugfix: Menu/button prefs editors are safer (more validation)
  1667.                File loading code improved
  1668.           Notes: Tooltypes still on ice, but new features (below) are
  1669.                coded ready for when i can safely include them.
  1670.                Decided QBox will be released as shareware.
  1671.           New*:BUTTONFILE tooltype for defining default button prefs file
  1672.                MENUFILE tooltype for defining default menu prefs file
  1673.                TIMEOUT tooltype for defining idle time before auto-quit
  1674.                DEFFILE tooltype defines amigados script ran on auto-quit
  1675.                Tooltypes will run before cli parser so defaults are set
  1676. v1.11     New: Simple User Menu editor (inc. appwindow and import)
  1677.                Load and Save menu preferences
  1678.                MENUX/Y tooltypes ready to roll when tooltypes debugged
  1679.                Simplistic recognition between button and menu prefs files
  1680.                MENU CLI argument fot specifying menu prefs
  1681.                All windows now use screen title bar
  1682.           Update: Copy & Exch pref buttons prompt with title bar not req
  1683.                Project menu now covers new menu load,save etc functions
  1684.                Prefs button now opens and closes all prefs windows
  1685.           Bugfix: Various small bug fixes
  1686.           Note: Still no ToolTypes support
  1687.                Rewrite of 
  1688.  vers to cover menu loading, new cli etc.
  1689.                Micro version is more important now as full version has
  1690.                out grown its role as a small launch program. Consider
  1691.                the full version as a prefs editor.
  1692. v1.10     New: Key shortcuts for all buttons in all windows
  1693.                Screen title reinstated and popkey combi displayed
  1694.           Update: Popkey now works properly (Many thanks Leading Edge)
  1695.                Windows are activated more intuitively
  1696.           BugFix: V.Minor fix to hide code (shared var was missing)
  1697.           Note: ToolTypes are still on @!**&% ice!
  1698.                Micro (
  1699. ) version re-written including auto-displaying About
  1700. v1.09d    New: Added timeout system for use in s:user-startup
  1701.                SECONDS/K/N CLI argument added to control timeout period
  1702.                DEFAULT/K/N CLI argument added to define timeout scriptnames
  1703.                Prepend QBox commands to DEFAULT file
  1704.           Update: Improved CLI parser
  1705.                Main process loop slightly more efficient
  1706.                Title updates without closing and reopening the main window
  1707. v1.09c    New: Clear (Clr) button in the button prefs for blanking a button
  1708.                /S QBox command added for scripts contains script-only cmds
  1709.                Hide option in Quit requester
  1710.                Button names may now have leading/trailing blanks
  1711.           Bugfix: User menu limits properly
  1712.                Save should now save into the correct directory
  1713.                X/Y may never DimX/DimY (there was an exception before)
  1714.                CLI argument sets ASL requester fields properly
  1715. v1.09b    New: MultiView default now include FONTNAME and FONTSIZE options
  1716.           Bugfix: Help option should work properly
  1717.           ReAdded: Commodity support (no hotkey)
  1718.                AppWindow support
  1719.           Reason: From what I can tell, v1.09 crashes when ever ToolTypes
  1720.                code is used. Commodity and appwindow support seem to be
  1721.                okay.
  1722.           Note: RILibs is back in business. ToolTypes and Hotkey support
  1723.                will be added into QBox as soon as RILib allows for it.
  1724. v1.09a    Removed: Commodity support
  1725.                AppWindow support
  1726.                ToolTypes support
  1727.           Reason: It appears that Blitz fails to free memory properly (in
  1728.                compiled versions) after QBox quits when the above features
  1729.                are used. I could live with this normally, but this problem
  1730.                with freeing memory results in a software error/guru
  1731.                (81000005 0001AE28).
  1732.                As soon these problems are fixed (and i'm sure they will)
  1733.                QBox will have the removed features added.
  1734.           Note: RILibs is on hold until the above troubles are fixed.
  1735. v1.09     New: Copy buttons
  1736.                Exchange buttons
  1737.                Import AmigaDos script to QBox button script
  1738.                Undo last button config operation
  1739.                Goto X/Y matrix position input area
  1740.           Update: X label now DimX in button prefs
  1741.                Y label now DimY in button prefs
  1742.           Note: From this version on, all QBox distributions will contain
  1743.                 two versions: a standard vx.xx and a micro vx.xx
  1744. . The
  1745.                 micro version is a reduced version without Prefs editors or
  1746.                 any associated operations (i.e. save, new, appwindow etc)
  1747. v1.08     New: QBox is now a commodity (no hotkey yet)
  1748.                Icon tooltypes supported
  1749.                User notification and verification requesters
  1750.                Hide menu option added
  1751.           Note: ElmoreLibs will be used from here on with RILibs
  1752. v1.07     New: Button prefs window is now an AppWindow
  1753.                Utilises CatchDosErr requesters
  1754.           Note: RILibs will be used from here on until other wise stated
  1755. v1.06     New: Rudimentary user-definable menu system
  1756.                On-line help menu item
  1757.                Small font used when button height gets tight
  1758.           Update: Improved hotkey layout
  1759. v1.05     New: Window (sizes) now sensitive System font in title bar
  1760.                Menu disabled when About window visible
  1761.                Both prefs windows, when active, stay on page/screen
  1762.           Update: File format changed slightly for more intuitive edits
  1763.                About text shifted about to make it easier to read
  1764.                Fonts changed
  1765.                Better internal font handling to make future update easier
  1766.                New maximum of 60 chars for button text
  1767.                New minimum of 160 for I/O buffer
  1768.           BugFix: Main window stays on screen properly when Y updated
  1769.                Window coords update properly after window position change
  1770.                Auto-button width debugged
  1771.                Main window stays on screen properly after button width upd
  1772.           Misc: MagicWB-like icon added
  1773. v1.04     New: Windows now open where they were last closed
  1774.                Main window stays on screen when updated winsize/scrnmode
  1775.                CLI help text available (type ? as first CLI argument)
  1776.           BugFix: Button prefs opens safely now
  1777.                Filenames update in ASL filerequester properly
  1778. v1.03     New: Reduced button sizing overhead (slight speed increase)
  1779.                Adjusted prefs file order so manual edits more intuitive
  1780.           Removed: Main window resizing (maybe re-included in future)
  1781.           BugFix: post-load button prefs windows linked to button properly
  1782. v1.02     New: Automatic button width update
  1783.                During loading Main window only refreshes if successful Load
  1784.           Removed: Update menu option (now automated)
  1785.           BugFix: Both prefs windows update after loading
  1786. v1.01     New: Misc Prefs window
  1787.                Easy access to main window title
  1788.                Easy access to I/O buffer size
  1789.                Pull-down menus
  1790.                Update button size option
  1791.                Hotkeys
  1792.                Fitting all buttons on screen
  1793.                /F QBox command for loading matrix
  1794.           Bugfix: Error handler no longer gurus!
  1795. v1.00   First Release
  1796. Pre     QBox is based on a menu system I wrote way back in 1990 as part
  1797.         of an (over?) ambitious AMOS project. The original used a 640x256
  1798.         (16 colour) screen with hard coded graphics looking not unlike
  1799.         MenuMaster (remember that?). Unfortunately, the original code has
  1800.         been lost in the depths of the space-time continuum (the disks it
  1801.         was on have probably been formatted, corrupted or both).
  1802.         Needless to say QBox is a total rewrite!
  1803. @endnode
  1804. @node Future "QBox: Future"
  1805. <History                                                      Restrictions>
  1806.                         @{u}@{b}Future@{ub}@{uu}
  1807. * Iconify / Menuify QBox (if I feel the need)
  1808. * Hotkeys for all edit boxes (ActiveString doen't work with GadTools)
  1809. * Window for runtime command parameter selection (with editor & on/off tog)
  1810. * Proper button updating (GTSetAttr doesn't seem to support this)
  1811. * Proper menu updating (Currently each window has to be re-attached)
  1812. * Proper font sensitivity for buttons etc
  1813. * Force command to the last screen & window used (for CD32 keyboard faking)
  1814. * Scrolling Main window so that 1000s of buttons may be held in one script
  1815. * Default button prefs stored as icon tooltypes (maybe)
  1816. * Localisation (ie. language catalogues)
  1817. * Release execution CON: window from QBox [1]
  1818. * Detach QBox from CLI [2]
  1819. * 8svx Sample-Button association [3]
  1820. [1] This can be achieved currently by prepending commands (that don't
  1821.     automatically terminate before the next command/end of button script)
  1822.     with "Run >NIL:".
  1823. [2] Can be achieved by typing Run >NIL: QBox or by starting QBox from
  1824.     workbench icon.
  1825. [3] Currently, achievable by running a sample player >NIL: at the
  1826.     beginning of a button script.
  1827. @{u}@{b}Notes@{ub}@{uu}
  1828. QBox was coded and compiled in Acid Softwares Blitz Basic 2. With any luck
  1829. an Amiga E version will be appearing (as soon as I've registered and learnt
  1830. the language!). That isn't to say i'm not going to use Blitz any more tho.
  1831. =8O)             <-- Angle head -90 to floor (IRC users understand) *GRIN*
  1832. @endnode
  1833. @node Restrictions "QBox: Restrictions"
  1834. <Future                                                         Known Bugs>
  1835.                         @{u}@{b}Restrictions@{ub}@{uu}
  1836. QBox has several restrictions. Restrictions proceeded by - can not be
  1837. altered, they are restrictions imposed by Blitz or Commodore. + means
  1838. I can adjust the restriction for REGISTERED users if required - simply
  1839. @{"contact me" link Contact}.
  1840. - I/O Buffer may be a value 160 to 65535 (warning: after 16384 things
  1841.   can get a bit unstable).
  1842. + Button names may only be 60 character long. I will happily alter this
  1843.   on request, but the lower I/O buffer limit will have to increase.
  1844. - The work area for QBox (ie. all windows) is confined to 640x512 (sob).
  1845.   Hopefully, Acid will have fixed WB size commands in BUM.
  1846. - The number of buttons in the main button box should not be allowed to
  1847.   shrink less than a letter (when main window exceeds screen width
  1848.   buttons lose N characters). Why? Because button labels vanish,
  1849.   window refreshes become ridiculously slow and because QBox might
  1850.   just guru. Be sensible, use filename;\B for loading QBox prefs.
  1851.   I may add scrolling at some point to avoid this one.
  1852. + Window titles are restricted to 80 characters long
  1853. - QBox steals a bit of memory when closed. This is fixed in BUM6 and
  1854.   only needs a recompile under that version (so i'm told).
  1855. + QBox time-out period may not be less than 1 second (as less than this
  1856.   would make QBox virually impossible to use).
  1857. In addition EVALUATION versions also have the following restrictions
  1858. imposed on them as an incentive to register:-
  1859. * No preference editors
  1860. * Button matrix may only reach 4 buttons wide by 4 buttons deep
  1861. * User Defined Menus may only hold 3 menu items
  1862. * Occasionally a forced sticky About window appears that stays on screen 5
  1863.   seconds after clicking a mouse button.
  1864. * Menu and Button I/O buffers may only reach a maximum of 1024 characters
  1865.   (restricting script definition lengths)
  1866. @endnode
  1867. @node Bugs "QBox: Known Bugs"
  1868. <Restrictions                                                        Index>
  1869.                         @{u}@{b}Known Bugs@{ub}@{uu}
  1870. * QBox attempts to size its main window according to workbench dimensions.
  1871.   Unfortunately, (as far as I can tell) Acid chose to omit Super Hires
  1872.   and many other monitors. BUM 1-5 functions seem to only return dimensions
  1873.   upto 640x512. Not good!
  1874. I must say, this bug appear to be hang-overs from Acids Blitz2. This, to
  1875. my mind, is not on - particularly when you have to subscribe to BUM for
  1876. any fixes that might arise. I would like to say that Acid have found a good
  1877. system of upgrading, but I'd be telling a gross lie. Taking a look at
  1878. other companies (Europress, Softwood, EA and many others beside, who either
  1879. make updates available via PD libraries/ftp/coverdisks or by charging a
  1880. nominal update fee) it becomes obvious that Acid aren't really taking
  1881. Blitz user support seriously. I don't stand alone in this view; I'd go so
  1882. far as to say most Blitz users are disappointed by the lack-lustre support.
  1883. Come on Acid, you have one of the best BASIC packages available, let's see
  1884. some support to match (and a more comprehensive up-to-date manual too).
  1885. Please...
  1886. @endnode
  1887. @node Index "QBox: Index"
  1888. <Misc
  1889.                               @{u}@{b}Index@{ub}@{uu}
  1890. @{" Acknowledgements             " link Credits}
  1891. @{" Button prefs, App window     " link UseBPAppW}*
  1892. @{" Button prefs, Button name    " link UseBPName}*
  1893. @{" Button prefs, Clear          " link UseBPClr}*
  1894. @{" Button prefs, Command script " link UseBPCmd}*
  1895. @{" Button prefs, Copy           " link UseBPCopy}*
  1896. @{" Button prefs, Dim X          " link UseBPDimX}*
  1897. @{" Button prefs, Dim Y          " link UseBPDimY}*
  1898. @{" Button prefs, Exchange       " link UseBPExch}*
  1899. @{" Button prefs, Export         " link UseBPEprt}*
  1900. @{" Button prefs, Import         " link UseBPIprt}*
  1901. @{" Button prefs, Load           " link UseLoad}*
  1902. @{" Button prefs, New            " link UseNew}*
  1903. @{" Button prefs, Revert         " link UseBPRvrt}*
  1904. @{" Button prefs, Save           " link UseSaveAs}*
  1905. @{" Button prefs, Undo           " link UseBPUndo}*
  1906. @{" Button prefs, X              " link UseBPX}*
  1907. @{" Button prefs, Y              " link UseBPY}*
  1908. @{" Buttons                      " link UseMainBut}
  1909. @{" CLI usage                    " link Usage}
  1910. @{" Contacting the author        " link Contact}
  1911. @{" Copyright notice             " link Legal}
  1912. @{" Disclaimer                   " link Legal}
  1913. @{" File formats                 " link UseFormats}
  1914. @{" Future                       " link Future}
  1915. @{" General usage                " link Usage}
  1916. @{" History                      " link History}
  1917. @{" Installation of QBox         " link Install}
  1918. @{" Introduction to QBox         " link Introduction}
  1919. @{" Known bugs                   " link Bugs}
  1920. @{" Legal texts                  " link Legal}
  1921. @{" Menu                         " link UseMenu}
  1922. @{" Menu, About                  " link UseAbout}
  1923. @{" Menu, Cased buttons          " link UseMCsBut}*
  1924. @{" Menu, Delete                 " link UseDel}*
  1925. @{" Menu, Help                   " link UseHelp}
  1926. @{" Menu, Hide                   " link UseHide}
  1927. @{" Menu, Load                   " link UseLoad}
  1928. @{" Menu, New                    " link UseNew}*
  1929. @{" Menu, Quit                   " link UseQuit}
  1930. @{" Menu, Save                   " link UseSave}*
  1931. @{" Menu, Save as                " link UseSaveAs}*
  1932. @{" Menu, Show about             " link UseMAbTxt}*
  1933. @{" Menu, Show prefs             " link UseMPrBut}*
  1934. @{" Menu, User definable menus   " link UseUDM}
  1935. @{" Menu prefs, App window       " link UseUPAppW}*
  1936. @{" Menu prefs, Menu name        " link UseUPName}*
  1937. @{" Menu prefs, Clear            " link UseUPClr}*
  1938. @{" Menu prefs, Command script   " link UseUPCmd}*
  1939. @{" Menu prefs, Copy             " link UseUPCopy}*
  1940. @{" Menu prefs, Dim              " link UseUPDim}*
  1941. @{" Menu prefs, Exchange         " link UseUPExch}*
  1942. @{" Menu prefs, Export           " link UseUPEprt}*
  1943. @{" Menu prefs, HotKey           " link UseUPKey}*
  1944. @{" Menu prefs, Import           " link UseUPIprt}*
  1945. @{" Menu prefs, Item             " link UseUPItem}*
  1946. @{" Menu prefs, Load             " link UseULoad}*
  1947. @{" Menu prefs, New              " link UseUNew}*
  1948. @{" Menu prefs, Revert           " link UseUPRvrt}*
  1949. @{" Menu prefs, Save             " link UseUSaveAs}*
  1950. @{" Menu prefs, Undo             " link UseUPUndo}*
  1951. @{" Misc prefs, About            " link UseAbout}*
  1952. @{" Misc prefs, I/O button       " link UseMPIb}*
  1953. @{" Misc prefs, I/O menu         " link UseMPIm}*
  1954. @{" Misc prefs, Window title     " link UseMPTitle}*
  1955. @{" Quick reference image        " System "PPShow QBoxQRef.gif"}+
  1956. @{" Quitting QBox                " link UseQuit}
  1957. @{" Registration                 " link Register}
  1958. @{" Restrictions                 " link Restrictions}
  1959. @{" Scripts                      " link UseScript}
  1960. @{" Terms of license             " link legal}
  1961. @{" ToolTypes                    " link UseTTypes}
  1962. @{" Window, Button preferences   " link UseBPref}*
  1963. @{" Window, Main button          " link UseMain}
  1964. @{" Window, Miscellaneous prefs  " link UseMPref}*
  1965. * Only available in the REGISTERED vX.XX version
  1966. + Link only available to REGISTERED users
  1967. @endnode
  1968.